A ROS Noetic/catkin project for the MuSHR simulator. It includes basic ROS examples, particle-filter localization, roadmap planning, and path-tracking controllers.
| Package | Description | Writeup |
|---|---|---|
cse478 |
Shared utilities, maps, and MuSHR launch files | - |
introduction |
Basic ROS examples | README |
localization |
Particle filter localization | README |
planning |
Roadmap generation and A* planning | README |
control |
PID, Pure Pursuit, and MPC controllers | README |
This setup recreates the course VM environment on an ARM-based Mac using UTM. The root-level setup.sh script automates the installation.
.vmxand.nvramfiles are not usable on ARM Macs, so the VM setup relies on a fresh Ubuntu image instead.- VMware Fusion cannot run the original x86 VM on ARM because x86 virtualization is not supported.
- UTM works well with ARM Ubuntu virtualization.
- Ubuntu 20.04 ARM desktop images are not provided as official stable desktop releases, so this setup uses Ubuntu 20.04 Server and installs
ubuntu-desktop.
- Download the Ubuntu 20.04 ARM64 Server image.
- Install UTM.
- Create a Linux VM in UTM using the Ubuntu image.
- Recommended VM settings:
- CPU: 2 cores
- RAM: 4096 MB
- User:
robotics
- Copy
setup.shinto the VM:
scp setup.sh robotics@<server_ip>:/home/robotics/- Run the setup script:
sudo bash /home/robotics/setup.sh
sudo reboot- Installs the Ubuntu desktop environment.
- Installs basic packages and adds repositories.
- Adds the ROS Noetic APT repository.
- Installs ROS Noetic and required ROS packages.
- Adds ROS setup sourcing to
.bashrc. - Runs
rosdep initandrosdep update. - Clones the dependency and MuSHR workspaces.
- Installs the
range_libcPython wrapper. - Builds the catkin workspaces.
- Deletes
setup.shafter successful completion.
Start the simulator:
roslaunch cse478 teleop.launchRun localization:
roslaunch localization particle_filter_teleop_sim.launchRun planning:
roslaunch planning planner_sim.launch controller:=mpcRun control:
roslaunch control controller_sim.launch type:=ppSend a test path:
rosrun control path_sender line --length 10 --speed 2 --resetRun all tests:
catkin testRun one package:
catkin test localization- Writeups are in each package's
writeup/directory. - Main config files are
localization/config/parameters.yamlandcontrol/config/parameters.yaml.
