Robot diferencial
SE cuenta con los siguiente modelos de desarrollo:
- sauronbot_model_01 [model_01] -- llantas, lidar
- sauronbot_model_02 [model_02] -- llantas, lidar, RpiCamera
- sauronbot_model_03 [rover_habich] -- llantas, lidar, RpiCamera, Realsense
- sauronbot_model_04 [model_04] -- llantas, lidar, RpiCamera
Estas instrucciones te permitirán obtener una copia del proyecto en funcionamiento en tu máquina local para propósitos de desarrollo y pruebas. Mira Deployment para conocer como desplegar el proyecto.
Que cosas necesitas para instalar el software y como instalarlas
Una serie de ejemplos paso a paso que te dice lo que debes ejecutar para tener un entorno de desarrollo ejecutandose Dí cómo será ese paso
- 1.- Descarga de archivos
cd $HOME
mkdir -p sauronbot_ws/src
cd sauronbot_ws/src
git clone https://github.com/jsotelo1024/sauronbot_msgs.git
git clone https://github.com/jsotelo1024/sauronbot.git
- 2.- Instalacion de dependencia: mqtt_bridege
cd $HOME
cd sauronbot_ws/src
git clone -b python2.7 https://github.com/groove-x/mqtt_bridege.git
sudo apt install python-pip
cd mqtt_bridege
pip install -r requirements.txt
sudo apt-get ros-melodic-rosbridge-server
- 3.- Instalacion de dependencia: mqtt_bridege
cd $HOME
mkdir -p sauronbot_ws/src
cd sauronbot_ws/src
git clone -b master https://github.com/Slamtec/rplidar_ros.git
- 1.- Scanear la red local en busca del SBC
Para lo cual se debe tener instalado nmap:
sudo apt-get install nmap
Se procede con la busqueda de la IP del SBC:
nmap -sP <IP_PC>/<#NETMASK>
- 2.- Conectarse mediante ssh a la SBC
ssh {USER}@{IP_ADDRESS_OF_SBC}
- 1.- Configurar $HOME/.bashrc de la PC
++ export ROS_IP={IP_ADDRESS_OF_PC}
++ export ROS_HOSTNAME={IP_ADDRESS_OF_PC}
++ export ROS_MASTER_URI={IP_ADDRESS_OF_PC}:11311
++ echo "ROS_IP: ${ROS_IP}"
++ echo "ROS_HOSTNAME: ${ROS_HOSTNAME}"
++ echo "ROS_MASTER_URI: ${ROS_MASTER_URI}"
- 2.- Configurar $HOME/.bashrc de la SBC
++ export ROS_IP={IP_ADDRESS_OF_SBC}
++ export ROS_HOSTNAME={IP_ADDRESS_OF_SBC}
++ export ROS_MASTER_URI={IP_ADDRESS_OF_PC}:11311
++ echo "ROS_IP: ${ROS_IP}"
++ echo "ROS_HOSTNAME: ${ROS_HOSTNAME}"
++ echo "ROS_MASTER_URI: ${ROS_MASTER_URI}"
- 3.- Sincronizar relojes
Tener instalado ntpdate:
sudo apt-get install ntpdate
Ejecutar en la PC
sudo ntpdate ntp.ubuntu.com
Ejecutar en la SBC
sudo ntpdate ntp.ubuntu.com
- 1.- Lanzar el nodo en la SBC mediante:
roslaunch raspicam_node camerav2_410x308_30fps.launch
- 2.- Lanzar el GUI de configuracion en la PC
rosrun rqt_reconfigure rqt_reconfigure
- 3.- Vizualizar la imagen en la PC mediante:
rqt_image_view
- 1.- Ejecutar en la SBC
roslaunch sauronbot_bringup sauronbot_robot.launch
En la PC
- 2.- Ejecutar el slam con el método hector
roslaunch sauronbot_slam sauronbot_slam.launch slam_methods:=hector
- 3.- Desplzarse por el ambiente con teleop
roslaunch sauronbot_teleop sauronbot_teleop_key.launch
- 4.- Guardar el mapa generado
rosrun map_server map_saver -f {RUTA}/{NAME_MAP}
- 1.- Lanzar el nodo del robot en el SBC
roslaunch sauronbot_bringup sauronbot_robot.launch
- 2.- Lanzar el nodo de navegación en la PC
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=<Ruta_del_mapa>/<nombre_del_mapa>.yaml
Ros te brinda herramientas para analizar el flujo de datos.
- 1.- Vizulizar el arbol de tf
rosrun rqt_tf_tree rqt_tf_tree
- 2.- Monitorear los ttpicos
rqt
Seleccionar Plugins/Topics/Topic Monitor
Para ahorrar recursos en la SBC, se puede usar solo el paquete sauronbot_bringup, que se optiene de dos maneras.
Clonar la rama melodic-SBC
- 1.- Clonar el repositorio
git clone -b melodic-devel git@github.com:jsotelo1024/sauronbot.git
- 2.- Borrar directorios innecesarios
rm -rf sauronbot_description sauronbot_gazebo sauronbot_mqtt sauronbot_slam CHANGELOG.md README.md
- 3.- Modificar sauronbot/package.xml
<buildtool_depend>catkin</buildtool_depend>
<exec_depend>sauronbot_bringup</exec_depend>
-- <exec_depend>sauronbot_slam</exec_depend>
-- <exec_depend>sauronbot_description</exec_depend>
-- <exec_depend>sauronbot_teleop</exec_depend>
-- <exec_depend>sauronbot_gazebo</exec_depend>
-- <exec_depend>sauronbot_mqtt</exec_depend>
- 4.- Modificar sauronbot_bringup/package.xml
<exec_depend>std_msgs</exec_depend>
-- <exec_depend>sauronbot_description</exec_depend>
<exec_depend>joint_state_publisher</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
<exec_depend>rosserial_python</exec_depend>
<exec_depend>rplidar_ros</exec_depend>
Para ahorrar recursos en la SBC, se puede usar solo el paquete sauronbot_bringup, que se optiene de dos maneras.
Clonar la rama melodic-diff
- 1.- Clonar el repositorio
git clone -b melodic-devel git@github.com:jsotelo1024/sauronbot.git
- 2.- Borrar directorios innecesarios
rm -rf sauronbot_description sauronbot_gazebo sauronbot_slam CHANGELOG.md README.md
- 3.- Modificar sauronbot/package.xml
<buildtool_depend>catkin</buildtool_depend>
<exec_depend>sauronbot_bringup</exec_depend>
-- <exec_depend>sauronbot_slam</exec_depend>
-- <exec_depend>sauronbot_description</exec_depend>
<exec_depend>sauronbot_teleop</exec_depend>
-- <exec_depend>sauronbot_gazebo</exec_depend>
<exec_depend>sauronbot_mqtt</exec_depend>
- 4.- Modificar sauronbot_bringup/package.xml
<exec_depend>std_msgs</exec_depend>
-- <exec_depend>sauronbot_description</exec_depend>
<exec_depend>joint_state_publisher</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
<exec_depend>rosserial_python</exec_depend>
<exec_depend>rplidar_ros</exec_depend>