The ACR is a robot designed to detect and repair damage on wind turbine wings. Using an arduino and the ROS middleware, the robot can currently:
- Drive around; controlled by keyboard input via a usb connection
- Stick to surfaces using an external vacuum pump
- Lidar: Leddar Vu8
- Controller: Arduino ATMega2560 with custom shield (see docs folder for documentation on the shield)
- Stepper Drivers: TB6600 (4x)
- Stepper Motors: NEMA17 (4x)
For running the robot, there are two options:
- In a docker container
- On a virtual machine or normal PC with Ubuntu 18.04 (not anything higher, or lower)
I highly recommend doing it in a docker container, especially if you don't have experience with any Linux-related stuff.
-
Make sure you have docker installed your computer.
-
Run
build.sh
as Admin or using thesudo
command in Linux.
- Run
run.sh
as Admin or using thesudo
command in Linux. It will then say: I need more parameters! To which you respond with the appropriate parameters. They're the virtual device files corresponding to the lidar, and arduino. Often one of the following:
- Windows: COM[0-9]
- Linux: /dev/ACM[0-9] or /dev/USB[0-9]
-
Control the robot using the
i
,j
,k
,l
,m
,,
and.
keys. Keep the terminal with teleop_twist focused, as it will only listen to the keyboard when it is focused -
That was it. That's why you should use docker.
Make sure the robot is not in full speed !
-
Follow the following instructions to install ROS.
-
For installing everything needed concerning the Lidar, you'll need to head to the LeddarSDK github page
-
Upload code to the arduino. The source code is located in
rosssystem/src/acr_control/src
. -
Build everything using catkin_make
- You can simply launch the project using
roslaunch acr_setup acr_setup.launch
. If you get any errors saying it can't connect on the given usb ports, you should change the parameters to match the ones on you machine. These are often the following:
- Windows: COM[0-9]
- Linux: /dev/ACM[0-9] or /dev/USB[0-9]
Make sure the robot is not in full speed !
There is no dedicated odometry device (like a potmeter to check the angle of the wheels), so current the speed of the robot is matched by the rviz simulation using a calibration factor in the arduino code. This code, and instructions can be found in arduino_src/arduino_src.ino
.
I've run into issues with the leddar sdk a while ago (early 2020), and have seen that they since then have updated their repo and guides. You might want to check out a new version of their sdk.
The project is build on ROS Melodic. The reason I've not migrated to Noetic is that the rosserial_python package hasn't been updated accordingly. You might want to keep an eye out for this.
- Replacing the Arduino by a Controllino
- On-board raspberry pi for wireless control
- Implementing SLAM for autonomous navigation [RUNNING]
Further info on goals can be found in the 'Projects' page