Student project proposals
Student project proposals
Projects may be conducted in groups or individually, and may be modified to suit the students interest, skill and time.
All projects here are aimed at developing the robot body of the Cyborg, built on top of the fully autonomous Pioneer LX base. The robot will roam the hallways of Glassgården, as a campus maskot displaying biological neural network activity thorugh its LED head. The biological activity is obtained via a 60-electrode neural recording device: the MEA2100. We hope through these projects to finalize our robot. The cuurent version looks like this.
Robot Operating System (ROS)
This project utilizes ROS (Robot Operating System) and will be relevant in all the projects below. ROS is one of the most widely used robotic development frameworks, with a very large online community. Learning ROS is great to have in your toolset and CV. If you know C++, Python or Lisp, you should be up and running with ROS in short time.
The state-machine is the robots main mode of operation. It specifies the robots autonomous behaviours such as:
- Navigation: where and when to go places
- Sounds effects
- LED visualizations
The state-machine is already quite well developed and states are sett based on an emotional system. Improvements need to be made in order to get everything up and running such that the robot can operate autonomously in Glassgården.
1. Control, navigation and state-machine
This project entails working with the Pioneer LX robot and the ROS based system. Tasks will include:
- Port proprietary navigation to the ROS navigation stack
- Create a top level controller that sets and switches robot modes of operation:
- only navigation
- behaviour without navigation
- manual operation
- Work with project 2 on the state-machine
The project may also entail some embedded/hardware work such maintaining the onboard mode selector.
Keywords: ROS, Python/C++, shell scripts, state-machine, navigation, SLAM, embedded, electronics
2. Behaviour: LED, sound and state-machine
The goal of this project is to give the robot personality. The project entails:
- Work on the LED dome
- Software: ROS python node and Arduino code
- Hardware: ESP32 controller, power supply, ws2812b LED strips
- Work on the ROS audio node
- Work with project 1 on the state-machine
Some possible LED dome animations:
- Visualization of biological neural network: live-stream and csv file
- Face animations
- Emergency and construction work lighting
- Random activity
- Strobe and pulse
Keywords: ROS, Python/C++, embedded, LED, electronics
3. Remote GUI interface
Create a remote GUI interface that allows the operator to monitor and control the robot, The projects entails:
- Develop a GUI such as a web app or using ROS-RQT
- Create a GUI client ROS node that serves as an interface between the ROS-based system and the GUI.
- Work with project 1 on setting up communication between the GUI client ROS node with the controller node described in project 1.
- Optional: a database to store and plot historical data from the robot.
Some suggested GUI features:
- View operating state: state-machine, manual operation, stopped...'
- View status information: battery charge, motor status... (optional: plot historical data)
- View where the robot is in the map
- Ability to change the operating mode
- Ability to change state in the state-machine
- Send robot to location
- Manual operation:
- Ability to view live video feed
- Ability to control the robot using keyboard input
- Use onboard microphone and speakers for two-way communication
Keywords: GUI, ROS, web app, database, Azure
4. Robot vision
Work on the robots object/person detector software using the YOLO neural network framework. This software detects humans in the camera images and sends reletive coordinates to the ROS system. This allows the robot to seek out people to interact with. If the student has experience with 3D SLAM, this can be incorporated alongside the navigational abilites of the the Pioneer LX.