Welcome to the assignment1_exp_rob_lab
ROS package! This package is designed for the Experimental Robotics Lab assignment 1. It involves simulating a robot in a virtual world, utilizing ArUco markers for navigation.
- src: Contains Python scripts (
ArUcoMarkerExtractor.py
andMarkerBasedNavigation.py
) for ArUco marker extraction and robot navigation. - launch: Contains ROS launch files (
MarkerBasedNavigation.launch
andMarkerBasedNavigation_Full.launch
) for launching Gazebo, RViz, and the robot nodes. - config: Holds RViz configuration file (
rvizconfig.rviz
). - worlds: Contains Gazebo world file (
aruco_assignment.world
). - CMakeLists.txt and package.xml: Define package dependencies, build configuration, and other metadata.
- setup.py: Specifies Python scripts to be installed.
- rospy
- sensor_msgs
- cv_bridge
- geometry_msgs
- std_msgs
- gazebo_msgs
Follow these steps to run the ROS package and simulate the robot in a virtual environment:
catkin_make
source devel/setup.bash
roslaunch assignment1_exp_rob_lab MarkerBasedNavigation.launch
rosrun rviz rviz -d /path/to/assignment1_exp_rob_lab/config/rvizconfig.rviz
Gazebo should simulate the robot's environment, and RViz should visualize camera images, ArUco markers, and the robot model.
If you want to observe ArUco marker extraction, uncomment the corresponding lines in MarkerBasedNavigation.launch
. Save the file and relaunch the package.
As the simulation runs, the robot should move based on detected ArUco markers.
- [Robot Simulation in Virtual World]
virtual_exp.mp4
- [Robot Operation in Real World]
freecompress-real_exp.mp4
In some scenarios, you may want to launch specific nodes individually. Below are the commands to launch Gazebo, RViz, and each node separately.
roslaunch assignment1_exp_rob_lab MarkerBasedNavigation.launch
This command launches Gazebo along with other necessary nodes. You can observe the robot's simulated environment in Gazebo.
rosrun rviz rviz -d /path/to/assignment1_exp_rob_lab/config/rvizconfig.rviz
This command launches RViz and loads the configuration file for visualization. You can observe camera images, ArUco markers, and the robot model in RViz.
roslaunch assignment1_exp_rob_lab MarkerBasedNavigation.launch
Uncomment the ArUco marker extraction node lines in MarkerBasedNavigation.launch
if you want to run this node separately. Save the file and relaunch the package.
rosrun assignment1_exp_rob_lab MarkerBasedNavigation.py
If you want to run only the robot navigation node without Gazebo or RViz, use this command.
Make sure to source your workspace before running any of the above commands:
source devel/setup.bash
This package provides a foundation for marker-based navigation in a simulated environment. However, there are several areas where improvements and enhancements can be made to further enhance its capabilities:
- Improve the robot's localization accuracy by exploring advanced localization algorithms or techniques.
- Implement more sophisticated mapping strategies to create a more detailed and accurate map of the environment.
- Integrate algorithms for dynamic obstacle avoidance to make the robot more adaptive in dynamic environments.
- Explore methods to enable the robot to interact with humans or respond to specific human gestures or commands.
- Extend the capabilities to seamlessly transition from simulation to real-world deployment by addressing hardware-specific considerations.
- Optimize code and algorithms for improved efficiency, ensuring the package runs smoothly in real-time applications.
Contributions and enhancements are welcome! Feel free to fork the repository, implement improvements, and submit pull requests to contribute to the continuous development of this package.
- Bernard Maacaron
- Ines Haouala
- Benkredda Roumaissa
- Karim Triki