NUS ME5413 Autonomous Mobile Robotics Planning Project
- System Requirements:
- Ubuntu 20.04 (18.04 not yet tested)
- ROS Noetic (Melodic not yet tested)
- C++11 and above
- CMake: 3.0.2 and above
- This repo depends on the following standard ROS pkgs:
roscpprospyrvizstd_msgsnav_msgsgeometry_msgsvisualization_msgstf2tf2_rostf2_eigentf2_geometry_msgsgazebo_rosjsk_rviz_pluginsjackal_gazebojackal_navigationvelodyne_simulatordynamic_reconfigure
This repo is a ros workspace, containing three rospkgs:
me5413_worldthe main pkg containing the gazebo world, source code, and the launch filesjackal_descriptioncontains the modified jackal robot model descriptions
Note: If you are working on this project, it is encouraged to fork this repository and work on your own fork!
After forking this repo to your own github:
# Clone your own fork of this repo (assuming home here `~/`)
cd
git clone https://github.com/<YOUR_GITHUB_USERNAME>/ME5413_Planning_Project.git
cd ME5413_Planning_Project
# Install all dependencies
rosdep install --from-paths src --ignore-src -r -y
# Build
catkin_make
# Source
source devel/setup.bashThis command will launch the gazebo with the project world
# Launch Gazebo World together with our robot
roslaunch me5413_world world.launchIn the second terminal, launch the path publisher node and the path tracker node:
# Load a map and launch AMCL localizer
roslaunch me5413_world path_tracking.launch-
Control your robot to follow the given figure 8 track.
- You may use any algorithms you like.
- Implement your algorithms in the
src/me5413_world/include/me5413_world/path_tracker_node.hppandsrc/me5413_world/src/path_tracker_node.cpp, to replace our template code. - Test your algorithms on the track & Report your tracking accuracy.
-
In the template code, we have provided you:
- A dumb PID controller for the throttle.
- A weird Stanley controller for the steering.
- However, both are not properly configured or tuned.
-
We have provided you a dynamic reconfigure GUI that allows you to tune some of the parameters:
-
We also provides you six topics (and visualized in RVIZ) that computes the real-time errors between your robot and the tracking path:
/me5413_world/planning/abs_position_error([m],std_msgs::Float32)/me5413_world/planning/abs_heading_error([deg],std_msgs::Float32)/me5413_world/planning/abs_speed_error([m/s],std_msgs::Float32)/me5413_world/planning/rms_position_error([m],std_msgs::Float32)/me5413_world/planning/rms_heading_error([deg],std_msgs::Float32)/me5413_world/planning/rms_speed_error([m/s],std_msgs::Float32)
You are welcome contributing to this repo by opening a pull-request
We are following:
The ME5413_Planning_Project is released under the MIT License

