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.pyandMarkerBasedNavigation.py) for ArUco marker extraction and robot navigation. - launch: Contains ROS launch files (
MarkerBasedNavigation.launchandMarkerBasedNavigation_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_makesource devel/setup.bashroslaunch assignment1_exp_rob_lab MarkerBasedNavigation.launchrosrun rviz rviz -d /path/to/assignment1_exp_rob_lab/config/rvizconfig.rvizGazebo 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.launchThis 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.rvizThis 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.launchUncomment 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.pyIf 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.bashThis 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
