Developed for the 2020 Melbourne University Racing (MUR) Motorsports Driverless Project as part of the Spatial and Perception System for the Vehicle State Estimation Subsystem. Multiple rospy files are within this repo for different purposes, including one that was developed using mobile phone sensors. The most recent is tortoisebotlistener.py which is detailed throughout this README.md file. This is designed to filter odometry data from the tortoisebot simulation by using Kalman Filters.
- tortoisebot
- hector_gazebo
- common_msgs
- ouster_example
- ROS melodic
- Install 'sudo apt install ros-melodic-desktop-full' and 'sudo apt install python-catkin-tools'
- Clone the repo to an existing ROS Workspace (use catkin build)
git clone https://github.com/mfkeane/avse.git- Clone required repos to the same ROS Workspace
git clone https://github.com/mfkeane/common_msgs.git
git clone https://github.com/mfkeane/tortoisebot.git
git clone https://github.com/stevenlee090/ouster_example.git
git clone https://github.com/tu-darmstadt-ros-pkg/hector_gazebo.git- Install required libraries, mainly
teleop_twist_keyboardfor controlling the robot movement.
sudo apt-get install ros-melodic-teleop-twist-keyboard
- Build the ROS Workspace with catkin build
- Source the ROS Workspace
source devel/setup.bash- From the ROS Workspace, which will open Gazebo and RViz:
roslaunch tortoisebot tortoisebot.launch model:="$(find tortoisebot)/urdf/tortoisebot.urdf.xacrp"- From a seperate terminal:
rosrun localisation tortoisebotlocalisation.py- To control the robot, run this from another seperate terminal:
rosrun teleop_twist_keyboard teleop_twist_keyboard.py- In RViz, add the
RobotModeldisplay and the two odometry messages,/odomand/mur/Odom. The first is the raw noisy readings from the GPS, and the second is the filtered data from the GPS and IMU. Change the colour of these to differientate them. Set fixed frame toodomand uncheck any covariances. You may wish to set to TopDownOrtho view and reduce the tolerances and keep variables for clarity.
Once finished, you should end up with something like this

- mur_sim
- See full list under the mur_sim repo
WIP 0. Install 'sudo apt install ros-melodic-desktop-full' and 'sudo apt install python-catkin-tools'
- Setup ROS Workspace as per mur_sim readme
- Clone this repo to the MURSIM existing ROS Workspace (use catkin build)
git clone https://github.com/MURDriverless/localisation.git- Build the ROS Workspace with catkin build
- Source the ROS Workspace
source devel/setup.bash- From the ROS Workspace, launch mur_sim
- From a seperate terminal:
rosrun avse tortoisebotlistener.py- To control the robot, run this from another seperate terminal:
rosrun teleop_twist_keyboard teleop_twist_keyboard.pyor use rqt
8. In RViz, add the RobotModel display and the two odometry messages, /odom and /mur/Odom. The first is the raw noisy readings from the GPS, and the second is the filtered data from the GPS and IMU. Change the colour of these to differientate them. Set fixed frame to odom and uncheck any covariances. You may wish to set to TopDownOrtho view and reduce the tolerances and keep variables for clarity.
├── localisation
│ ├── README.md
| └── localisation
| ├── CMakeLists.txt
│ ├── package.xml
│ ├── setup.py
| └── src
| ├── __init__.py
| └── scripts
| ├── mursimlocalisation.py
| └── tortoisebotlocalisation.py
- Further tune the Kalman Filters
- Plot branch is slightly better than Master but has publishers that will either be helpful for testing, or annoying to navigate. If using master, you need to update the R parameters to match Plot (see compare branches)