This is a Innspace Rover Autonomous Navigation System implemented in ROS2 Humble. Workspace contains set of packages that enable to simulate, test, use and integrate systems required for autonomous navigation tasks.
- Installation
- System documentation
- Usage guide
Run set of commands in your terminal:
- Create workdir and src folder
mkdir innspace_rover
- Clone the repository
git clone [email protected]:kafrankowska/innspace_rover.git
rosdep install --from-paths src -r -y
colcon build --symlink-install
- Launch simulation
source install/setup.bash
ros2 launch rover_description launch_sim.launch.py
Packages list:
- rover_description - package containing rover description
- rover_simulation - package responsible for defining simulation enviroment
- rover_localization - package meant to integrate rover's odometry system. It fuses information coming from wheel encoders, IMU and GPS and it publishes smooth Odometry frames with odom which is transfered to base_link
This package aims to declare robot structure, sensors, and driver controller in order to simulate robot behaviour in Gazebo and/or RVIZ.
Rover is equipped with OAK-D lite stereo camera and IMU system. Rover description assumes differential drive controller which can be handeled with twist teleoperation.
For keyboard teleop type in terminal:
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:=/diff_cont/cmd_vel_unstamped
Rover simulation package is responsible for launching different declared gazebo simulations enviroments. Rover_description package is mandatory for simulation. User is able to check performance of rover's systems and implemented algorithms.
Package contains following worlds scenarios:
Package provides smooth and accurate odometry information based on fused sensor information from the data provided by wheel encoders and IMU platform. through geometry_msgs/PoseWithCovarianceStamped and geometry_msgs/TwistWithCovarianceStamped.
Package uses Extended Kalman filter state stmiator to implement fusion.
Future release shall increase functionality with navsat_transform_node which transforms geographic coordinates into the robot’s world frame that enables working with GPS systems.
Main resource for this package is provided in this docs: https://navigation.ros.org/setup_guides/odom/setup_odom.html#configuring-robot-localization