{"id":21103069,"url":"https://github.com/robotnikautomation/rbvogui_sim","last_synced_at":"2025-10-13T10:34:29.332Z","repository":{"id":91687775,"uuid":"334131735","full_name":"RobotnikAutomation/rbvogui_sim","owner":"RobotnikAutomation","description":"Packages for the simulation of the RB-VOGUI, RB-VOGUI-XL and RB-VOGUI-6W robots (including UR arms)","archived":false,"fork":false,"pushed_at":"2025-08-01T20:18:29.000Z","size":9455,"stargazers_count":32,"open_issues_count":5,"forks_count":19,"subscribers_count":4,"default_branch":"noetic-devel","last_synced_at":"2025-08-27T05:24:55.535Z","etag":null,"topics":["docker","gazebo","gazebo-ros","gazebo-simulator","kinetic","melodic","robot","robotics","ros","ros-kinetic","ros-melodic","vogui"],"latest_commit_sha":null,"homepage":"https://robotnik.eu/es/productos/robots-moviles/rb-vogui/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RobotnikAutomation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-29T11:58:35.000Z","updated_at":"2025-07-30T19:28:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"1981ee2d-da62-4e3f-b106-8de0e2307d20","html_url":"https://github.com/RobotnikAutomation/rbvogui_sim","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/RobotnikAutomation/rbvogui_sim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frbvogui_sim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frbvogui_sim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frbvogui_sim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frbvogui_sim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RobotnikAutomation","download_url":"https://codeload.github.com/RobotnikAutomation/rbvogui_sim/tar.gz/refs/heads/noetic-devel","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RobotnikAutomation%2Frbvogui_sim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014641,"owners_count":26085555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","gazebo","gazebo-ros","gazebo-simulator","kinetic","melodic","robot","robotics","ros","ros-kinetic","ros-melodic","vogui"],"created_at":"2024-11-19T23:57:36.301Z","updated_at":"2025-10-13T10:34:29.300Z","avatar_url":"https://github.com/RobotnikAutomation.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rbvogui_sim\n\nPackages for the simulation of the RB-Vogui\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_base.png\" height=\"275\" /\u003e\n  \u003cimg src=\"doc/rbvogui_one_arm.png\" height=\"275\" /\u003e\n  \u003cimg src=\"doc/rbvogui_xl_base.png\" height=\"275\" /\u003e\n  \u003cimg src=\"doc/rbvogui_xl_gazebo.png\" height=\"275\" /\u003e\n  \u003cimg src=\"doc/rbvogui_xl_lift.png\" height=\"275\" /\u003e\n  \u003cimg src=\"doc/rbvogui_6w.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\n## Packages\n\nThis packages contains: \n\n### rbvogui_gazebo\n\nLaunch files and world files to start the models in gazebo\n\n### rbvogui_sim_bringup\n\nLaunch files that execute the complete simulation of the robot\n\n## Requirements\n\n- Ubuntu 20.04\n- ROS Noetic\n- Python 3.0 or higher\n\n## Simulating RB-Vogui\n\n### 1) Install the following dependencies:\n\nThis simulation has been tested using Gazebo 9 version. To facilitate the installation you can use the ```vcstool```:\n\n```bash\nsudo apt-get install -y python3-vcstool\n```\n\nInstall ```catkin_tools``` in order to compile the workspace\n\n```bash\nsudo sh -c 'echo \"deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main\" \u003e /etc/apt/sources.list.d/ros-latest.list'\nwget http://packages.ros.org/ros.key -O - | sudo apt-key add -\nsudo apt-get update\nsudo apt-get install python3-catkin-tools\n```\n\nInstall ```rqt_joint_trajectory_controller``` to move the arm joint by joint and ```moveit_commander``` to move it via script\n\n```bash\nsudo apt-get install ros-noetic-rqt-joint-trajectory-controller \nsudo apt-get install ros-noetic-moveit-commander\n```\n\n### 2) Create a workspace and clone the repository:\n\nCreate a new workspace\n\n```bash\nmkdir catkin_ws\ncd catkin_ws\n```\n\nInstall one of these versions. Keep in mind  that on the stable version the latest features may be not available.\n\n**Install stable version:**\n\n```bash\nvcs import --input https://raw.githubusercontent.com/RobotnikAutomation/rbvogui_sim/noetic-devel/repos/rbvogui_sim.repos\nrosdep install --from-paths src --ignore-src -y -r\n``` \n\n**Or install developer version:**\n\n```bash\nvcs import --input https://raw.githubusercontent.com/RobotnikAutomation/rbvogui_sim/noetic-devel/repos/rbvogui_sim_devel.repos\nrosdep install --from-paths src --ignore-src -y -r\n```\n\n### 3) Install the controllers, robotnik_msgs and the rcomponent:\n\n\n```bash\ncd ~/catkin_ws\nsudo dpkg -i src/rbvogui_common/libraries/*\n```\n\n### 4) Compile:\n\n```bash\ncd ~/catkin_ws\ncatkin build\nsource devel/setup.bash\n```\n\n### 5) Run RB-Vogui simulation:\n\nThese are the different configurations available:\n\n- Vogui\n- Vogui with UR-5 arm\n- Vogui with UR-5 arm and RG2 gripper\n- Vogui with UR-10 arm\n- Vogui with UR-10 arm and RG2 gripper\n- Vogui with UR-10 arm and EGH gripper\n- Vogui XL\n- Vogui XL with left and right UR10e arm\n- Vogui XL with UR-10e arm and Ewellix lift\n- Vogui 6W\n\n### 5.1 RB-Vogui\n\nSet your robot kinematics to omni/ackermann (In case of ackermann, you will need twist2ackermann node enabled)\n  \n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui\n```\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_base.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\n### 5.2 RB-Vogui with UR5 arm\n\n```bash\n  roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std_ur5.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=ur5\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_ur5.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\n```bash\n ROS_NAMESPACE=robot roslaunch rbvogui_ur5_moveit demo.launch\n```\n\n### 5.3 RB-Vogui with UR5 arm and RG2 gripper\n\n```bash\n  roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std_ur5_rg2.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=ur5 launch_gripper:=true gripper_manufacturer:=onrobot gripper_model:=rg2\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_ur5_rg2.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\n```bash\nROS_NAMESPACE=robot roslaunch rbvogui_ur5_rg2_moveit demo.launch\n```\n\n### 5.4 RB-Vogui with UR10 arm\n\nIn case you want to launch the rbvogui with an UR arm you can type the following command:\n```bash\n  roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std_ur10.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=ur10\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_one_arm.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\nYou can play with the arm by using the rqt_joint_trajectory:\n```bash\nROS_NAMESPACE=robot rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller\n```\n\nOr even use moveit to plan trajectories:\n```bash\nROS_NAMESPACE=robot roslaunch rbvogui_moveit_ur10 demo.launch\n```\n\n### 5.5 RB-Vogui with UR10 arm and RG2 gripper\n\n```bash\n  roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std_ur10_rg2.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=ur10 launch_gripper:=true gripper_manufacturer:=onrobot gripper_model:=rg2\n```\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_ur10_rg2.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\n\n```bash\nROS_NAMESPACE=robot roslaunch rbvogui_ur10_rg2_moveit demo.launch\n```\n\n### 5.6 RB-Vogui with UR10 arm and EGH gripper\n\n```bash\n  roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std_ur10_egh.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=ur10 launch_gripper:=true gripper_manufacturer:=schunk gripper_model:=egh\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_ur10_egh.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\n```bash\nROS_NAMESPACE=robot roslaunch rbvogui_ur10_egh_moveit demo.launch\n```\n\n### 5.7 RB-Vogui XL\n\nIf you prefer to launch the rbvogui XL, you can type:\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui_xl robot_xacro:=rbvogui_xl_std.urdf.xacro\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_xl_base.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\n### 5.8 RB-Vogui XL with two UR10e arm\n\nThe rbvogui Xl can be launched with two UR arms, only this bi-arm (UR-10e) option is available:\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui_xl robot_xacro:=rbvogui_xl_biarm.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=bi_ur10e\n``` \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_xl_gazebo.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\n\nYou can play with the arms by using the rqt_joint_trajectory:\n```bash\nROS_NAMESPACE=robot rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller\n```\n\nTo plan trajectories with the bi-arm robot you can type:\n\n```bash\nROS_NAMESPACE=robot roslaunch rbvogui_xl_2ur10_e_moveit rbvogui_xl_moveit_config.launch\n```\n\nTo switch between arms on RViz look for MotionPlanning \u003e Planning Request \u003e Planning Group and it will show you all the available groups (left_arm and right_arm).\n\n### 5.9 RB-Vogui XL with UR10e arm and Ewellix lift\n\nThe rbvogui Xl can also be launched with an UR-10e arm and an Ewellix lift:\n\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui_xl robot_xacro:=rbvogui_xl_lift_ur10e.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=lift_ur10e\n``` \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_xl_lift.png\" height=\"275\" /\u003e\n\u003c/p\u003e\n\nYou can play with the arm by using the rqt_joint_trajectory:\n```bash\nROS_NAMESPACE=robot rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller\n```\n\nTo plan trajectories with the robot you can type:\n\n```bash\nROS_NAMESPACE=robot roslaunch rbvogui_xl_lift_ur10e_moveit demo.launch\n```\n\nTo control the lift, you can type:\n\n```bash\nrostopic pub /robot/lift_controller/command std_msgs/Float64 \"data: 0.2\"\n```\n\n### 5.10 RB-Vogui 6W\n\nLaunch the six wheel version of the rbvogui:\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui_6w robot_xacro:=rbvogui_6w_std.urdf.xacro\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_6w.png\" height=\"300\" /\u003e\n\u003c/p\u003e\n\n\n\u003c!-- \n### 6) Enjoy!\n\nYou can use the topic ```/robot/robotnik_base_control/cmd_vel ``` to control the RB-Vogui robot. --\u003e\n\n## 6) Teleoperation\n\nThe robot can be controlled through three manual methods:\n\n- Rviz pad plugin\n- Keyboard\n- Joystick\n\n### 6.1 Rviz pad plugin\n\nWhen rviz is launched with the robot, this plugin is loaded automatically. It can be found on the lower left corner of rviz.\nIt allows the robot to rotate and move forward/backward, but it can not perform omnidirectional movements\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rviz_pad_teleop_plugin.png\" height=\"250\" /\u003e\n\u003c/p\u003e\n\nIt is highly recommended to use this option with simulation because is the fastest.\n\n### 6.2 Keyboard\n\nInstall the keyboard node\n\n```bash\nsudo apt-get update\nsudo apt-get install ros-noetic-teleop-twist-keyboard\n```\n\nOpen a new terminal and launch the node to move the robot\n\n```bash\nROS_NAMESPACE=robot rosrun teleop_twist_keyboard teleop_twist_keyboard.py \n```\n\n### 6.3 Joystick\n\nThe robot can also be controller by a PS4 pad controller. This option is usually used with the actual robot but, it works with the simulation too.\n\nFollow the [installation guide of the robotnik_pad](https://github.com/RobotnikAutomation/robotnik_pad)\n\nOnce the required software is installed, launch the simulation with ```launch_pad:=true```\n\nParam | Type | Description | Requirements\n------------ | -------------  | ------------- | -------------\nlaunch_pad | boolean  | It launches the robotnik_pad package | ds4drv installed, ps4 joystick, bluetooth connection\n\nFor example:\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui launch_pad:=true\n```\n\n## 7) Mappping, localization and navigation\n\nYou can use these features with any of the above configurations of the robot. **Just add the following parameters to the robot:**\n\nParam | Type | Description | Requirements\n------------ | -------------  | ------------- | -------------\nrun_mapping | Boolean  | Launch gmapping mapping | Localization can not be running\nrun_localization | Boolean  | Launch amcl localization. | Mapping can not be running.\nmap_file | String | Set the map for localization | Format: map_folder/map_name.yaml\nrun_navigation | Boolean  | Launch TEB navigation | Localization must be running. Not compatible with mapping\n\n### 7.1 Quick start\n\nLaunch a rbvogui with a default world and map for the localization and navigation\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std.urdf.xacro run_localization:=true run_navigation:=true\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_navigation.png\" height=\"400\" /\u003e\n\u003c/p\u003e\n\n### 7.2 Create a map\n\nLaunch rbvogui robot with gmapping:\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std.urdf.xacro run_mapping:=true rviz_config_file:=rviz/rbvogui_map.rviz\n```\n\nMove the robot by using the pad teleop plugin from rviz:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvogui_mapping.png\" height=\"400\" /\u003e\n\u003c/p\u003e\n\nWhen the map is fine, open a terminal and go to the ```rbvogui_localization``` package\n\n```bash\ncd ~/catkin_ws \u0026\u0026 source devel/setup.bash\nroscd rbvogui_localization \u0026\u0026 cd maps\n```\n\nCreate a folder with the name of the map. For example:\n\n``` bash\nmkdir demo_map\ncd demo_map\n```\n\nFinally, save the map inside that folder\n\n```bash\nROS_NAMESPACE=robot rosrun map_server map_saver -f demo_map\n```\n\n\n### 7.3 Use a map\n\nNavigate with the rbvogui using the default map:\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std.urdf.xacro run_localization:=true run_navigation:=true\n```\n\nOr use your own map:\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std.urdf.xacro run_localization:=true run_navigation:=true map_file:=demo_map/demo_map.yaml\n```\n\n### 7.4 Troubleshooting\n\n### 7.4.1  Laser visualization\n\nIf the laser does not display via RVIZ, it is probably because the computer does not use the GPU. You can disable the GPU for the rbvogui simulation. Just add this parameter to the robot:\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui use_gpu:=false\n```\n\n### 7.4.2 Laser obstacles\n\nIf the laser see all the points near the sensor, it is probably because the simulation in launched with GPU in an machine without GPU.  Disable the GPU for the simulation:\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui use_gpu:=false\n```\n\n\n## 8) Scripts\n\n**Disclaimer**: **these examples have only been tested in the simulation. They work with the real robot but have been simplificated, therefore the security is not managed. For the real robot you must use the robot_local_control package.**\n\nThe robot can be commanded from a script via the standard ROS interface like move_base or moveit_commander.\n\n### 1. Move robot script\n\nLaunch the robot, localization and navigation\n\n```bash\nroslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui run_localization:=true run_navigation:=true\n```\n\nThen, run the script. The robot will move to (1,1) position\n\n```bash\nROS_NAMESPACE=robot rosrun rbvogui_gazebo move_robot.py\n```\n\nYou can set your own position by editing the script:\n\n```bash\npoint.target_pose.pose.position.x = 1.0\npoint.target_pose.pose.position.y = 1.0\npoint.target_pose.pose.position.z = 0.0\n```\n\n### 2. Move arm script\n\nLaunch the robot with the arm:\n```bash\n  roslaunch rbvogui_sim_bringup rbvogui_complete.launch robot_model:=rbvogui robot_xacro:=rbvogui_std_ur10.urdf.xacro launch_arm:=true arm_manufacturer:=ur arm_model:=ur10\n```\n\nLaunch moveit:\n```bash\nROS_NAMESPACE=robot roslaunch rbvogui_moveit_ur10 demo.launch\n```\n\nThen run one of these scripts:\n\n#### Joint by joint \n\nIt moves the arm joint by joint\n\n```bash\nROS_NAMESPACE=robot rosrun rbvogui_gazebo move_arm_joint_by_joint.py\n```\n\nYou can set your own joints positions by editing the script:\n\n```bash\njoint_goal[0] = 0\njoint_goal[1] = -pi/4\njoint_goal[2] = 0\njoint_goal[3] = -pi/2\njoint_goal[4] = 0\njoint_goal[5] = pi/3\n```\n\n#### To point\n\nIt moves the arm to a point\n\n```bash\nROS_NAMESPACE=robot rosrun rbvogui_gazebo move_arm_to_point.py\n```\n\nYou can set your own point by editing the script:\n```bash\npose_goal.orientation.w = 1.0\npose_goal.position.x = 0.7\npose_goal.position.y = 0.4\npose_goal.position.z = 1.5\n```\n\n\u003c!--\nhttps://answers.gazebosim.org//question/12723/gpu_ray-sensors-bad-behaviour-when-increasing-samples/\n--\u003e\n\n## 9) Multiple robots\n\n### 9.1 Limitations\n\nSimulating several robots at the same time in Gazebo is a complex task since it requires a powerful computer and a good structure of robots. These are the current limitations:\n\n1. Simulation only works without GPU. The GPU plugin of the lidar laser in different robots at the same time leads to ```gazebo malloc(): memory corruption``` error in Gazebo.\n\n2. In robots with arms, the robots must be the same model. Otherwise it leads to ```gazebo malloc(): memory corruption``` error in Gazebo. For example, two rbvoguis xl with arm and a rbvogui work, but two rbvoguis xl with arm and a rbvogui with arm do not work.\n\n3. The moveit packages of the arms does not support multiple robots directly. The reason is that setup_assistant of Moveit does not take into account the prefix on frames and collisions. These packages were created for ```robot_``` prefix, but with multiple robots it changes to ```robot_a_```, ```robot_b_```, ```robot_c_``` .\n\n### 9.2 Spawn\n\nThe following points are examples of the multi robot simulation. They can be combined with other configurations keeping in mind the limitations explained before.\n\nParam | Type | Description |  Requirements\n------------ | -------------   | ------------ | ------------\nlink_map | boolean  | Link the robot maps using a static transformation. Useful to control all robots from rviz when localization is working. | Multiple robots enabled, localization launched \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvoguis_link_map.png\" height=\"100\" /\u003e\n\u003c/p\u003e\n\n\n### a) Launch three rbvogui with localization and navigation\n\n```bash\nroslaunch rbvogui_sim_bringup rbvoguis_complete.launch link_maps:=true run_localization_a:=true run_navigation_a:=true run_localization_b:=true run_navigation_b:=true run_localization_c:=true  run_navigation_c:=true\n ```\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvoguis.png\" height=\"280\" /\u003e\n\u003c/p\u003e\n\nrobot_a |   | robot_b |   | robot_c |   |\n--------| - | ------- | - | --------| - |\nrun_robot_a | true | run_robot_b | true | run_robot_c | true \nrobot_model_a | rbvogui | robot_model_b | rbvogui | robot_model_c | rbvogui \nrobot_xacro_a | rbvogui_std.urdf.xacro | robot_xacro_b | rbvogui_std.urdf.xacro | robot_xacro_c | rbvogui_std.urdf.xacro\nrun_localization_a | true  | run_localization_b  | true | run_localization_c  | true \nrun_navigation_a | true  | run_navigation_b| true | run_navigation_c| true\n\nFrom rviz, use the pad_teleop of each robot to control them or set a navigation goal to navigate autonomously.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvoguis_rviz.png\" height=\"400\" /\u003e\n\u003c/p\u003e\n\nFrom the Tool Properties panel, change the ```2D Pose Estimate``` and ```2D Nav Goal``` topic to the namespace of the robot which will receive initalposes and goals .\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvoguis_tool_rviz.png\" height=\"170\" /\u003e\n\u003c/p\u003e\n\n### b) Launch a rbvogui, a rbvogui xl and a rbvogui 6w with localization and navigation\n \n```bash\nroslaunch rbvogui_sim_bringup rbvoguis_complete.launch link_maps:=true  robot_model_a:=rbvogui robot_xacro_a:=rbvogui_std.urdf.xacro run_localization_a:=true run_navigation_a:=true robot_model_b:=rbvogui_xl robot_xacro_b:=rbvogui_xl_std.urdf.xacro run_localization_b:=true run_navigation_b:=true robot_model_c:=rbvogui_6w robot_xacro_c:=rbvogui_6w_std.urdf.xacro run_localization_c:=true run_navigation_c:=true\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvoguis_models.png\" height=\"280\" /\u003e\n\u003c/p\u003e\n\n\nrobot_a |   | robot_b |   | robot_c |   |\n--------| - | ------- | - | --------| - |\nrun_robot_a | true | run_robot_b | true | run_robot_c | true \nrobot_model_a | rbvogui | robot_model_b | rbvogui_xl | robot_model_c | rbvogui_6w \nrobot_xacro_a | rbvogui_std.urdf.xacro | robot_xacro_b | rbvogui_xl_std.urdf.xacro | robot_xacro_c | rbvogui_6w_std.urdf.xacro\nrun_localization_a | true  | run_localization_b  | true | run_localization_c  | true \nrun_navigation_a | true  | run_navigation_b| true | run_navigation_c| true\n\n\u003cbr/\u003e\n\n### c) Launch a rbvogui with UR-10 arm and EGH gripper and rbvogui with UR-5e arm and RG2 gripper\n\n```bash\nroslaunch rbvogui_sim_bringup rbvoguis_complete.launch robot_model_a:=rbvogui robot_xacro_a:=rbvogui_std_ur10_egh.urdf.xacro launch_arm_a:=true arm_manufacturer_a:=ur arm_model_a:=ur10 launch_gripper_a:=true gripper_manufacturer_a:=schunk gripper_model_a:=egh robot_model_b:=rbvogui robot_xacro_b:=rbvogui_std_ur5_rg2.urdf.xacro launch_arm_b:=true arm_manufacturer_b:=ur arm_model_b:=ur5 launch_gripper_b:=true gripper_manufacturer_b:=onrobot gripper_model_b:=rg2 run_robot_c:=false\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvoguis_arms.png\" height=\"240\" /\u003e\n\u003c/p\u003e\n\n\nrobot_a |   | robot_b |   | robot_c |   |\n--------| - | ------- | - | --------| - |\nrun_robot_a | true | run_robot_b | true | run_robot_c | false \nrobot_model_a | rbvogui | robot_model_b | rbvogui | robot_model_c | ---- \nrobot_xacro_a | rbvogui_std_ur10_egh.urdf.xacro | robot_xacro_b | rbvogui_std_ur5_rg2.urdf.xacro | robot_xacro_c | ----\nlaunch_arm_a | true | launch_arm_b | true | launch_arm_c | ----\narm_manufacturer_a | ur | arm_manufacturer_b | ur | arm_manufacturer_c | ----  \narm_model_a | ur10 | arm_model_b | ur10 | arm_model_c | ----\nlaunch_gripper_a | true | launch_gripper_b | true | launch_gripper_c | ----\ngripper_manufacturer_a | schunk | gripper_manufacturer_b | onrobot | gripper_manufacturer_c | ----  \ngripper_model_a | egh | gripper_model_b | egh | gripper_model_c | ----\n\n\nSince this example is launched without localization and navigation, the default fixed frame is ```robot_a_odom```. Change the fixed frame to the robot namespace and enable its folder on rviz.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvoguis_frame_rviz.png\" height=\"200\" /\u003e\n\u003c/p\u003e\n\n### d) Launch a rbvogui xl with UR-10e arm and ewellix lift and rbvogui xl with two UR10e \n\n```bash\nroslaunch rbvogui_sim_bringup rbvoguis_complete.launch robot_model_a:=rbvogui_xl robot_xacro_a:=rbvogui_xl_lift_ur10e.urdf.xacro launch_arm_a:=true arm_manufacturer_a:=ur arm_model_a:=lift_ur10e robot_model_b:=rbvogui_xl robot_xacro_b:=rbvogui_xl_std.urdf.xacro launch_arm_b:=true arm_manufacturer_b:=ur arm_model_b:=bi_ur10e  run_robot_c:=false \n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"doc/rbvoguis_xl_arms.png\" height=\"250\" /\u003e\n\u003c/p\u003e\n\nrobot_a |   | robot_b |   | robot_c |   |\n--------| - | ------- | - | --------| - |\nrun_robot_a | true | run_robot_b | true | run_robot_c | false \nrobot_model_a | rbvogui_xl | robot_model_b | rbvogui_xl | robot_model_c | ---- \nrobot_xacro_a | rbvogui_xl_lift_ur10e.urdf.xacro | robot_xacro_b | rbvogui_xl_std.urdf.xacro | robot_xacro_c | ----\nlaunch_arm_a | true | launch_arm_b | true | launch_arm_c | ----\narm_manufacturer_a | ur | arm_manufacturer_b | ur | arm_manufacturer_c | ----  \narm_model_a | lift_ur10e | arm_model_b | bi_ur10e | arm_model_c | ----\n\nTha arms can be controlled joint by joint by using the ```rqt_joint_trajectory``` plugin.  Set the namespace depending on the robot selected.\n\n```\nROS_NAMESPACE=robot_a rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller\n```\n\n```\nROS_NAMESPACE=robot_b rosrun rqt_joint_trajectory_controller rqt_joint_trajectory_controller\n```\n\n## Docker usage\n\nIn order to run this simulation you will need nvidia graphical accelation\n\n### Installation of required files\n- [docker](https://docs.docker.com/engine/install/ubuntu/)\n- [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker)\n- nvidia-drivers\n\n### Usage\n\n```bash\ngit clone https://github.com/RobotnikAutomation/rbvogui_sim.git\ncd rbvogui_sim\ngit checkout noetic-devel\nexport ROS_BU_PKG=\"rbvogui_sim_bringup\"\nexport ROS_BU_LAUNCH=\"rbvogui_complete.launch\"\ncd docker\ndocker compose up\n```\n\n#### Selecting the robot model\n\nYou can select the robot, the launch file of package using the optional arguments on launch\nBy default the selected robot is `rbvogui`\n\n```bash\ndocker/simulation-in-container-run.sh --help\n```\n\n```\nROBOTNIK AUTOMATION S.L.L. 2021\n\nSimulation of RB VOGUI using docker\n\nUsage:\ndocker/simulation-in-container-run.sh [OPTIONS]\n\nOptional arguments:\n --robot -r ROBOT       Select robot to simulate\n                        Valid robots:\n                            rb_vogui_one_ur_arm rb_vogui_xl_two_ur_arms rb_vogui rb_vogui_xl\n                        default: rb_vogui\n\n --launch -l            Select launch file\n                        default: rbvogui_complete.launch kinematics:=omni twist2ackermann:=false\n\n --package -p           Select ros package\n                        default: rbvogui_sim_bringup\n\n --ros-port -u PORT     Host ros port\n                        default: 11345\n\n --gazebo-port -g PORT  Host ros port\n                        default: 11345\n\n -h, --help             Shows this help\n\n```\n\n**RB Vogui with one UR arm**\n```bash\ndocker/simulation-in-container-run.sh --robot rb_vogui_one_ur_arm\n```\n***IMPORTANT:*** This simulation starts paused, please remember to press play button on gazebo after few seconds\n\n**RB Vogui XL**\n```bash\ndocker/simulation-in-container-run.sh --robot rb_vogui_xl\n```\n***IMPORTANT:*** This simulation starts paused, please remember to press play button on gazebo after few seconds\n\n**RB Vogui XL with UR arms**\n```bash\ndocker/simulation-in-container-run.sh --robot rb_vogui_xl_two_ur_arms\n```\n***IMPORTANT:*** This simulation starts paused, please remember to press play button on gazebo after few seconds\n\n#### Manual Build\n\nIf you wish to build manually the image without the use of the script use one the following commands:\n\n**Optiona A**\n```bash\ncd docker\ndocker build -f Dockerfile ..\n```\n**Option B**\n```bash\ndocker build -f docker/Dockerfile .\n```\n\n#### Notes\n\n- This is docker requires a graphical interface\n- The ros master uri is accesible outside the container, so in the host any ros command should work\n- You could also run a roscore previous to launch the simulation in order to have some processes on the host running\n- if you want to enter on the container use the following command in another terminal\n```bash\ndocker container exec -it rb_vogui_sim_instance bash\n```\n- In order to exit you have to 2 options\n1. Close `gazebo` and `rviz` and wait a bit\n2. execute in another terminal:\n```bash\ndocker container rm --force rb_vogui_sim_instance\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Frbvogui_sim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobotnikautomation%2Frbvogui_sim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobotnikautomation%2Frbvogui_sim/lists"}