|
| 1 | +## **What Is This?** |
| 2 | + |
| 3 | +This is a simple demo robot with all components from publishing **joint states** to publishing **fake laser data** to visualizing the robot model on a map in `RViz2`. |
| 4 | + |
| 5 | +## **Build** |
| 6 | + |
| 7 | +```bash |
| 8 | +colcon build --package-select dummy_map_server dummy_sensors dummy_robot_bringup |
| 9 | +``` |
| 10 | + |
| 11 | +## **Run** |
| 12 | + |
| 13 | +```bash |
| 14 | +ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py |
| 15 | +``` |
| 16 | + |
| 17 | +## **Verify** |
| 18 | + |
| 19 | +A similar terminal output should be seen: |
| 20 | + |
| 21 | +```bash |
| 22 | +[INFO] [launch]: All log files can be found below /home/$USER/.ros/log/2022-07-22-17-02-33-629155-comname-39641 |
| 23 | +[INFO] [launch]: Default logging verbosity is set to INFO |
| 24 | +[INFO] [dummy_map_server-1]: process started with pid [39643] |
| 25 | +[INFO] [robot_state_publisher-2]: process started with pid [39645] |
| 26 | +[INFO] [dummy_joint_states-3]: process started with pid [39647] |
| 27 | +[INFO] [dummy_laser-4]: process started with pid [39649] |
| 28 | +[dummy_laser-4] [INFO] [1658480554.018685559] [dummy_laser]: angle inc: 0.004363 |
| 29 | +[dummy_laser-4] [INFO] [1658480554.018738346] [dummy_laser]: scan size: 1081 |
| 30 | +[dummy_laser-4] [INFO] [1658480554.018747091] [dummy_laser]: scan time increment: 0.000028 |
| 31 | +[robot_state_publisher-2] Link single_rrbot_link1 had 1 children |
| 32 | +[robot_state_publisher-2] Link single_rrbot_link2 had 1 children |
| 33 | +[robot_state_publisher-2] Link single_rrbot_link3 had 2 children |
| 34 | +[robot_state_publisher-2] Link single_rrbot_camera_link had 0 children |
| 35 | +[robot_state_publisher-2] Link single_rrbot_hokuyo_link had 0 children |
| 36 | +[robot_state_publisher-2] [INFO] [1658480554.019739425] [robot_state_publisher]: got segment single_rrbot_camera_link |
| 37 | +[robot_state_publisher-2] [INFO] [1658480554.019783457] [robot_state_publisher]: got segment single_rrbot_hokuyo_link |
| 38 | +[robot_state_publisher-2] [INFO] [1658480554.019791344] [robot_state_publisher]: got segment single_rrbot_link1 |
| 39 | +[robot_state_publisher-2] [INFO] [1658480554.019796905] [robot_state_publisher]: got segment single_rrbot_link2 |
| 40 | +[robot_state_publisher-2] [INFO] [1658480554.019801861] [robot_state_publisher]: got segment single_rrbot_link3 |
| 41 | +[robot_state_publisher-2] [INFO] [1658480554.019806522] [robot_state_publisher]: got segment world |
| 42 | +``` |
| 43 | + |
| 44 | +The robot should be displayed similarly in `RViz2`: |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | +## **FAQ** |
| 49 | + |
| 50 | +`Q`: I ran `ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py` and `rviz2`. However, nothing is displayed in `RViz2` window. |
| 51 | + |
| 52 | +`A`: This issue could be related to the **ROS 2 Daemon**. It serves the same role as a **ROS1 Master** but within **ROS 2**. Restarting the daemon, as follows, should resolve this issue. |
| 53 | + |
| 54 | +`Reference`: https://github.com/ros2/ros2cli/issues/582#issuecomment-775997721 |
| 55 | + |
| 56 | +```bash |
| 57 | +ros2 daemon stop; ros2 daemon start |
| 58 | +# Verify |
| 59 | +# Open new terminal |
| 60 | +ros2 launch dummy_robot_bringup dummy_robot_bringup_launch.py |
| 61 | +# Open new terminal |
| 62 | +ros2 node list |
| 63 | +``` |
| 64 | + |
| 65 | +```bash |
| 66 | +# You should see the following terminal output: |
| 67 | +/dummy_joint_states |
| 68 | +/dummy_laser |
| 69 | +/dummy_map_server |
| 70 | +/robot_state_publisher |
| 71 | +``` |
| 72 | + |
| 73 | +## **References** |
| 74 | + |
| 75 | +- Original Rolling Demo Tutorial: https://docs.ros.org/en/rolling/Tutorials/Demos/dummy-robot-demo.html |
| 76 | +- What is ROS 2 Daemon: https://answers.ros.org/question/327348/what-is-ros2-daemon/ |
0 commit comments