Project Overview
“Autonomy is the key to the future of transportation.”
The Ville Portuaire project centers around the development of a small autonomous toy car tasked with retrieving and delivering goods. The project team, composed of six members, worked closely together to create a system using Python and ROS2 for embedded programming. The car is designed to navigate the environment autonomously, finding the shortest path while adhering to driving rules.
In addition to the car’s autonomous navigation, we developed a user-friendly interface that provides a visual representation of the car’s movements. This interface also allows users to interact with the system, enabling smooth monitoring and control over the car’s tasks.
Key Features
- Autonomous Navigation: The car autonomously determines the shortest path to complete delivery tasks while respecting traffic rules.
- Embedded Programming: We utilized ROS2 for real-time embedded programming, ensuring the car’s navigation system responds efficiently.
- User Interface: A visual dashboard allows users to track the car’s movements and interact with the system for updates or changes.
Development Process
Our development process was highly collaborative, utilizing Agile methodology. Each team member contributed to different aspects of the project, ensuring both the software and hardware components were integrated seamlessly. We worked in iterative sprints, ensuring constant improvement and feature delivery.
Technologies used:
- Embedded Programming: ROS2 for real-time control and embedded system programming
- Software: Python for system logic and control algorithms
- UI/UX: A custom-built user interface to track the car’s position and provide real-time updates
- Tools: Git for version control, Gazebo for simulation, and RViz for visualization
Skills Applied
- Autonomous Systems Design: The project required designing algorithms for pathfinding and rule-based navigation.
- Embedded Programming: Using ROS2, we developed real-time control systems for the toy car, enhancing our knowledge in robotics and IoT.
- Collaboration: Our team of six demonstrated strong teamwork, dividing responsibilities such as algorithm design, UI development, and system testing.
- UI Development: We designed an interactive and visually appealing user interface to make the system accessible and understandable to non-technical users.
Challenges and Solutions
-
Challenge: Implementing the shortest path algorithm while ensuring the car adheres to traffic rules was a complex task.
Solution: We combined Dijkstra’s algorithm for pathfinding with rule-based systems to manage the car’s behavior at intersections. -
Challenge: Integrating the user interface with the autonomous system in real-time.
Solution: We leveraged ROS2’s publish/subscribe architecture to ensure the UI receives continuous updates from the car’s sensors and navigation system.
Results and Learnings
The Ville Portuaire project successfully demonstrated an autonomous vehicle system capable of completing tasks while providing a seamless user experience. This project strengthened our understanding of ROS2, real-time embedded systems, and the challenges involved in developing autonomous vehicles. It also underscored the importance of cross-functional collaboration, as both software and hardware components needed to work in harmony.
We learned valuable lessons in project management, system integration, and user-centered design, which we can apply to future projects.
Next Steps
- Refinement of Navigation Algorithms: Enhance the system’s ability to handle more complex environments with dynamic obstacles.
- Expansion of UI Functionality: Add more controls for users to intervene in car navigation and task assignment.
- Hardware Integration: Explore different types of sensors and hardware platforms to improve the car’s decision-making and obstacle detection capabilities.