- The goal of this project is to move a robot around a flat area containing obstacles and narrow corridors. The robot must reach three waypoints, in order, and within 0.1i m (i = 1,2,3) of them, within 90s.
This program is developed using ROS2 Humble
Running in simulation mode:
- Open
params.sh
, find and setEE4308_TASK
to
export EE408_TASK=proj1sim
- Build the program by running
. bd.sh
- Run the program with
. run.sh
Running in hardware mode:
- SSH from remote PC to turtlebot
ssh ubuntu@<TURTLEIP>
- Turtle Bringup. Prepare the robot in a stationary position, and bring up the robot's sensors and peripherals using:
. robot.sh
wait for 5s to 10s, you will see two Run!
on the output when completed.
- Open
params.sh
in. Find and set theEE4308_TASK
to
expore EE4308_TASK=proj1sim
- Build your code
. bd.sh
- Run your code
. run.sh
Task: Estimation Task:
The program uses Odometry Motion Model and fuse it with the Inertial Measurement Unit (IMU) via weighted average.
Task: Planner Task :
The program utilizes A* Algorithm to obtain the path towards the next waypoint.
Task: Smoother Task :
The program utilizes cubic hermite splines to smoothens the path.
Task: Controller Task :
The program implemented a pure pursuit path tracking algorithm. From the path found by the global planner, a lookahead point ahead of the closest point along the path is found. The robot subsequently moves in a circular trajectory towards the lookahead point.