ROS2 packages for Parallax Eddie robot along with simulations using Gazebo (formerly ignition gazebo)
For an in depth tutorial on how to use this package check out the accompanying tutorial: robotics lab
- eddiebot_bringup: The driver for the Eddie robot board. It establishes a connection to the board using UART and acts as a bridge between ROS2 and Eddie commands that the firmware on the board understands. For more details about the commands please checkout the documentation directory.
- eddiebot_description: This package defines structure of the robot using URDF modelsf for every component of the robot. These models are used for generating kinematic and tf information. It uses the
diff_drive
plugin for differential drive control of the robot. The launch files startrobot_state_publisher
that reads the URDF model and generates static TF transforms, andjoint_state_publisher
that sends out dynamic TF transforms for joint position updates. - eddiebot_gazebo: Contains some sample worlds to test the robot in, along with a bunch of launch files that are able to setup Gazebo, spawn Eddie into the world, and necessary bridges for ROS2 and Gazebo communication.
- eddiebot_nav: Contains the launch files for the setup and launch of the navigation stack using nav2, slam_toolbox, depthimage_to_laserscan, and various other packages.
- eddiebot_msgs: Definition of specific topics and services for Eddie robot.
- eddiebot_odom: Publishes odometry information useful for mapping and localization. It publishes the transform between the frames
/odom
and/base_footprint
. - eddiebot_rviz: Rviz configurations and launch files for visualizing and monitoring various aspects of Eddie.
- eddiebot_vel_controller: A converter between different velocity types.
eddie-rviz.mp4
- How to convert a legacy ROS1 codebase to ROS2
- Example of hooks for setting GZ_SIM_RESOURCE_PATH
- Robot description launch with robot_state_publisher, joint_state_publisher, and joint_state_publisher_gui
- Kinect, Depth, Ultrasonic and infrared sensors in new Gazebo (
gpu_lidar
,gz::sim::systems::Sensors
,rgbd_camera
,gz-sim-sensors-system
) - Use of
gz-sim-diff-drive-system
gz::sim::systems::DiffDrive
for differential drive control. - Employing xacro files for easier management of robot structure defitnition.
- Launch files for launching Gazebo and Spawning a robot using
ros_gz_sim
andros_gz
- Use of
pointcloud_to_laserscan
for depth camera. - Examples of
ros_gz_bridge
for bridging ROS2 with Gazebo. - Modern nav2, slam_toolbox, and rtabmap launch and configuration files.
- Computation and publishing of odometry.
- rviz launch files with proper TF transformation along with different configuration files.
- Use of the new Gazebo (formerly ignition gazebo)