Difference between revisions of "Category:Hamster"

From cogniteam
Jump to: navigation, search
Line 115: Line 115:
  
 
1. [http://git.cogni.io:8001/hamster/hamster_mapping_controller mapping_controller]
 
1. [http://git.cogni.io:8001/hamster/hamster_mapping_controller mapping_controller]
 +
 
2. [http://git.cogni.io:8001/hamster/hamster_launch.git hamster_launch]
 
2. [http://git.cogni.io:8001/hamster/hamster_launch.git hamster_launch]
 +
 
3. [http://git.cogni.io:8001/hamster/raspicam.git raspicam]
 
3. [http://git.cogni.io:8001/hamster/raspicam.git raspicam]
 +
 
4. [http://git.cogni.io:8001/hamster/hamster_driver.git hamster_driver]  
 
4. [http://git.cogni.io:8001/hamster/hamster_driver.git hamster_driver]  
 +
 
5. [http://git.cogni.io:8001/hamster/hamster_rplidar.git hamster_rplidar]
 
5. [http://git.cogni.io:8001/hamster/hamster_rplidar.git hamster_rplidar]
 +
 
6. [http://git.cogni.io:8001/hamster/hamster_wandering.git hamster_wandering]
 
6. [http://git.cogni.io:8001/hamster/hamster_wandering.git hamster_wandering]
 +
 
7. [http://git.cogni.io:8001/hamster/hamster_navigation.git hamster_navigation]
 
7. [http://git.cogni.io:8001/hamster/hamster_navigation.git hamster_navigation]
8. [http://git.cogni.io:8001/cogniteam/tf_geometry.git tf_geometry]
+
 
9. [http://git.cogni.io:8001/cogniteam/hamster_rplidar.git hamster_rplidar]
+
8. [http://git.cogni.io:8001/hamster/tf_geometry.git tf_geometry]
10. [http://git.cogni.io:8001/cogniteam/laser_noise_filter.git laser_noise_filter]
+
 
 +
9. [http://git.cogni.io:8001/hamster/hamster_rplidar.git hamster_rplidar]
 +
 
 +
10. [http://git.cogni.io:8001/hamster/laser_noise_filter.git laser_noise_filter]
 +
 
 
11. [https://github.com/ros-drivers/nmea_msgs.git nmea_msgs]
 
11. [https://github.com/ros-drivers/nmea_msgs.git nmea_msgs]
 +
 
12. [https://github.com/ros-drivers/nmea_navsat_driver nmea_navsat_driver]
 
12. [https://github.com/ros-drivers/nmea_navsat_driver nmea_navsat_driver]
13. [http://git.cogni.io:8001/cogniteam/cognialg_cpp.git hamster_api/cognialg_cpp]
+
 
14. [http://git.cogni.io:8001/cogniteam/hamster_api_common_cpp.git hamster_api/hamster_api_common_cpp]
+
13. [http://git.cogni.io:8001/hamster/cognialg_cpp.git hamster_api/cognialg_cpp]
15. [http://git.cogni.io:8001/cogniteam/hamster_api_server_cpp.git hamster_api/hamster_api_server_cpp]
+
 
 +
14. [http://git.cogni.io:8001/hamster/hamster_api_common_cpp.git hamster_api/hamster_api_common_cpp]
 +
 
 +
15. [http://git.cogni.io:8001/hamster/hamster_api_server_cpp.git hamster_api/hamster_api_server_cpp]

Revision as of 15:49, 30 March 2017


Hamster system

Robot's components

Each robots have two raspberry pi computers on board - master and slave, and a low level controller.

Master - Has a wifi connection to the hamster network, provides network access to slave. It also connected to the slave computer directly via ethernet cable.

Slave - Second computer, used primarily for slam/localization algorithms, connected to hamster network via master.

Low level controller - Arduino based board responsible for interaction with hardware components.

Operation modes

Hamster robot is capable of running mapping, localization or outdoor localization (using GPS and IMU).

Switching between modes:

In order to change operation mode publish std_msgs/String message to /mapping_command topic, containing on e of the following strings:

  • slam
  • localization
  • outdoor

Example: <syntaxhighlight lang="bash" line='line'> rostopic pub /mapping_command std_msgs/String "data: 'slam'" </syntaxhighlight> <syntaxhighlight lang="bash" line='line'> rostopic pub /mapping_command std_msgs/String "data: 'localization'" </syntaxhighlight>

When switching from mapping to localization mode, the map is saved by the server, and loaded for localization algorithm.

Hamster wireless network

Router

  • SSID 2.4Ghz: hamster_net
  • SSID 5.0Ghz: hamster_net5
  • Password: hamsterHAMSTER
  • Network: 10.0.2.0
  • Netmask: 255.255.255.0
  • Gateway: 10.0.2.138

Hamster

  • User = pi
  • Password = hamster

Master:

  • IP: 10.0.2.n/192.168.1.n

Slave:

  • IP: 192.168.n.2

n - stands for agent id, e.g agent1 will have 10.0.2.1/192.168.1.1

Low level controller

Hamster Ardino connection scheme (for V4 and V5)

Description

Arduino based board responsible for interaction with hardware components such as:

  • Motors (drive and steering)
  • Encoders (mainly used for PID controller)
  • IMU
  • Battery monitoring
  • Cut-off (shuts down the platform when battery goes below certain voltage)

The LLC is connected to master computer via UART (serial)

A built-in switch is also provided for the possibility of loading the code on Ardiuno

Server

Description:

Usually runs ROS master services, it also loads and publishes the map for localization

Note: hamster robot may be configured to use local ROS master to avoid using dedicated server for this purpose

Packages:

1. hamster_server_launch

2. map_server

3. mapping_controller

4. (Optional) mrm_control_panel


Master

Description:

Majority of hardware is connected to the master pc, it also acts as network gateway for slave

Hardware

  • WiFi
  • Low level controller (via UART)
  • LiDar (USB)
  • Ethernet (to slave)

Packages

1. mapping_controller

2. hamster_launch

3. raspicam

4. hamster_driver

5. hamster_rplidar

6. hamster_wandering

7. hamster_navigation

8. tf_geometry

9. hamster_rplidar

10. laser_noise_filter

11. nmea_msgs

12. nmea_navsat_driver

13. hamster_api/cognialg_cpp

14. hamster_api/hamster_api_common_cpp

15. hamster_api/hamster_api_server_cpp

Subcategories

This category has the following 5 subcategories, out of 5 total.