Difference between revisions of "Category:Hamster"

From cogniteam
Jump to: navigation, search
(Hamster versions)
 
(38 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
File:HamsterNatbag.PNG|frame|300px|Ben Gurion Airport
 
File:HamsterNatbag.PNG|frame|300px|Ben Gurion Airport
 
</gallery>
 
</gallery>
 +
 +
 +
==Quick start==
 +
 +
1. Install hamster server - multi-master configuration https://wiki.cogni.io/index.php/HamsterServer
 +
 +
(if your robot was shipped before January 2018 - single-master configuration)
 +
 +
2. Turn on robot
 +
 +
3. Control your agents in hamster.perspective -rqt with mouse, joystick and keyboard:
 +
 +
Select window with agent number:
 +
 +
agents 1-10 switching with 1 ... 0 keyboard buttons
 +
 +
agents 11-20 switching with shift + 1 ... shift + 0
 +
 +
4. See your robot in hamster.rviz
 +
 +
For agents 3-20 change agent number in topic names
  
 
==Hamster system==
 
==Hamster system==
 +
 +
=== Hamster versions ===
 +
* [[:Category:HamsterV4|HamsterV4]]
 +
* [[:Category:HamsterV5|HamsterV5]]
 +
* [[:Category:HamsterV6|HamsterV6]]
 +
* [[:Category:HamsterV7|HamsterV7]]
 +
* [[:Category:HamsterV7I|HamsterV7 Intel]]
 +
* [[:Category:HamsterV7N|HamsterV7 Nvidia]]
 +
* [[:Category:HamsterProKit|Hamster Pro Kit]]
 +
* [[:Category:HamsterV8|Hamster V8]]
 +
 
=== Hamster research teams ===
 
=== Hamster research teams ===
 
The Hamster is being used as a research platform at various institutes
 
The Hamster is being used as a research platform at various institutes
Line 18: Line 50:
  
 
=== Hamster research papers ===
 
=== Hamster research papers ===
* [http://ijcai.org/Proceedings/15/Papers/270.pdf On the Use of Teamwork Software for Multi-Robot Formation Control]
 
 
* [https://u.cs.biu.ac.il/~sarit/data/articles/morIjcai17_2950.pdf Maintaining Communication in Multi-Robot Tree Coverage]
 
* [https://u.cs.biu.ac.il/~sarit/data/articles/morIjcai17_2950.pdf Maintaining Communication in Multi-Robot Tree Coverage]
 +
* [https://www.aaai.org/ocs/index.php/IJCAI/IJCAI15/paper/viewFile/10787/11189 Automated Agents for Advice Provision]
 +
* [http://ifaamas.org/Proceedings/aamas2018/pdfs/p2213.pdf Distributed Accurate Formation Control Under Uncertainty]
 +
* [https://www.aaai.org/ocs/index.php/IJCAI/IJCAI15/paper/viewFile/10808/10927 Intelligent Agent Supporting Human-Multi-Robot Team Collaboration]
 
* [http://www.merl.com/publications/docs/TR2018-125.pdf Control Architecture Design for Autonomous Vehicles]
 
* [http://www.merl.com/publications/docs/TR2018-125.pdf Control Architecture Design for Autonomous Vehicles]
 +
* [http://u.cs.biu.ac.il/~agmon/RovinskyIROS18.pdf Uncertain Local Leader Selection In Distributed Formation]
 +
* [http://u.cs.biu.ac.il/~agmon/MRMM/source/ICRA17MRMM1.pdf Multiple Robots For Multiple Missions: Architecture for Complex Collaboration]
 +
* [http://u.cs.biu.ac.il/~agmon/MRMM/ Research lab landing page]
 +
* [http://www.merl.com/publications/docs/TR2019-062.pdf Motion Planning of Autonomous Road Vehicles by Particle Filtering: Implementation and Validation]
  
 
=== Hamster models ===
 
=== Hamster models ===
Line 34: Line 72:
 
Master - Has a wifi connection to the hamster network, provides network access to slave. It also connects to the slave computer directly via ethernet cable.
 
Master - Has a wifi connection to the hamster network, provides network access to slave. It also connects to the slave computer directly via ethernet cable.
  
Slave - Second computer, used primarily for slam/localization algorithms, connected to hamster network via master.
+
Slave - Second computer, used primarily for GPS data broadcasting, connected to hamster network via master.
  
 
Low level controller - Arduino based board responsible for interaction with hardware components.
 
Low level controller - Arduino based board responsible for interaction with hardware components.
Line 58: Line 96:
 
When switching from mapping to localization mode, the map is saved by the server, and loaded for localization algorithm.
 
When switching from mapping to localization mode, the map is saved by the server, and loaded for localization algorithm.
  
All maps saved inside <strong>~/hamster_ws/src/hamster_server_launch/maps$</strong>  
+
All maps saved inside <strong>~/hamster_ws/src/hamster_server_launch/maps$</strong>
+
 
+
==Hamster calibrations and configurations==
 +
* Calibrate IMU [https://wiki.cogni.io/index.php/ConfigIMU IMU]
 +
* Calibrate Steering [https://wiki.cogni.io/index.php/ConfigSteering Steering]
 +
* Config Network [https://wiki.cogni.io/index.php/ConfigNetwork Network]
 +
* Power and Battery [https://wiki.cogni.io/index.php/PowerAndBattery Power]
 +
* Commands / Modes [https://wiki.cogni.io/index.php/HamsterCommands Modes]
 +
 
 +
==Hamster F.A.Q ==
 +
* Q: What is the Hamster maximum speed
 +
* A: 1.2m/s
 +
* Q: What is the Hamster minimum speed
 +
* A: 0.1 m/s
 +
* Q: What is the Hamster turning deg sensitivity
 +
* A: ~1 deg
 +
* Q: My Hamster turns in place in a suspicious manner. Why is it?
 +
* A: We call this the Austin Powers turn. This is since the Hamster uses hackerman steering geometry. With 0 linar force and some angular force it results in
 +
[[File:Austin.gif]]
  
 
==Hamster wireless network==
 
==Hamster wireless network==
Line 74: Line 128:
 
===Hamster===
 
===Hamster===
  
* User = pi
+
* User = pi / hamster (on up squared)
 
* Password = hamster
 
* Password = hamster
  
Line 106: Line 160:
 
Note: hamster robot may be configured to use local ROS master to avoid using dedicated server for this purpose
 
Note: hamster robot may be configured to use local ROS master to avoid using dedicated server for this purpose
  
Packages:
+
Project:
  
*[https://github.com/cogniteam/hamster_server.git hamster_server_launch]
+
*[https://github.com/cogniteam/hamster_server]
*[http://wiki.ros.org/map_server map_server]
 
*[https://github.com/cogniteam/hamster_server.git mapping_controller]
 
*(Optional) [https://github.com/cogniteam/hamster_server.git mrm_control_panel] 
 
  
 
==Master==
 
==Master==
Line 121: Line 172:
 
===Hardware===
 
===Hardware===
  
* WiFi
+
* WiFi ew-7811uac EDIMAX AC600
 +
* Camera raspberry Pi module v2
 +
* LiDar A2M8 (USB)
 +
* IMU AltIMU-10 v5
 +
* Ethernet (to slave)
 
* Low level controller (via UART)
 
* Low level controller (via UART)
* LiDar (USB)
 
* Ethernet (to slave)
 
 
===Packages===
 
 
*[http://git.cogni.io/hamster/hamster_mapping_controller mapping_controller]
 
*[http://git.cogni.io/hamster/hamster_launch hamster_launch]
 
*[http://git.cogni.io/hamster/raspicam raspicam]
 
*[http://git.cogni.io/hamster/hamster_rplidar hamster_rplidar]
 
*[http://git.cogni.io/hamster/hamster_wandering hamster_wandering]
 
*[http://git.cogni.io/hamster/hamster_navigation hamster_navigation]
 
*[http://git.cogni.io/hamster/tf_geometry tf_geometry]
 
*[http://git.cogni.io/hamster/hamster_rplidar hamster_rplidar]
 
*[http://git.cogni.io/hamster/laser_noise_filter laser_noise_filter]
 
*[https://github.com/ros-drivers/nmea_msgs.git nmea_msgs]
 
*[https://github.com/ros-drivers/nmea_navsat_driver nmea_navsat_driver]
 
*[http://git.cogni.io/hamster/cognialg_cpp hamster_api/cognialg_cpp]
 
*[http://git.cogni.io/hamster/hamster_api_common_cpp hamster_api/hamster_api_common_cpp]
 
*[http://git.cogni.io/hamster/hamster_api_server_cpp hamster_api/hamster_api_server_cpp]
 
  
 
==Slave==
 
==Slave==
 
Description
 
Description
  
Mainly used for outdoor localization algorithms
+
GPS data broadcaster
  
 
===Hardware===
 
===Hardware===
  
* GPS
+
* GPS Mouse - GP-808G
 
* Ethernet (to master)
 
* Ethernet (to master)
 
===Packages===
 
 
* [http://git.cogni.io/hamster/hamster_launch hamster_launch]
 
* [https://github.com/ros-drivers/nmea_msgs.git nmea_msgs]
 
* [https://github.com/ros-drivers/nmea_navsat_driver  nmea_navsat_driver]
 

Latest revision as of 05:33, 26 October 2021



Quick start

1. Install hamster server - multi-master configuration https://wiki.cogni.io/index.php/HamsterServer

(if your robot was shipped before January 2018 - single-master configuration)

2. Turn on robot

3. Control your agents in hamster.perspective -rqt with mouse, joystick and keyboard:

Select window with agent number:

agents 1-10 switching with 1 ... 0 keyboard buttons

agents 11-20 switching with shift + 1 ... shift + 0

4. See your robot in hamster.rviz

For agents 3-20 change agent number in topic names

Hamster system

Hamster versions

Hamster research teams

The Hamster is being used as a research platform at various institutes

Hamster research papers

Hamster models

Robot's components

Each robots has 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 connects to the slave computer directly via ethernet cable.

Slave - Second computer, used primarily for GPS data broadcasting, 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 the 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.

All maps saved inside ~/hamster_ws/src/hamster_server_launch/maps$

Hamster calibrations and configurations

Hamster F.A.Q

  • Q: What is the Hamster maximum speed
  • A: 1.2m/s
  • Q: What is the Hamster minimum speed
  • A: 0.1 m/s
  • Q: What is the Hamster turning deg sensitivity
  • A: ~1 deg
  • Q: My Hamster turns in place in a suspicious manner. Why is it?
  • A: We call this the Austin Powers turn. This is since the Hamster uses hackerman steering geometry. With 0 linar force and some angular force it results in

Austin.gif

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 / hamster (on up squared)
  • Password = hamster

Master:

  • IP: 10.0.2.n/192.168.n.1

Slave:

  • IP: 192.168.n.2

n - stands for agent id, e.g agent7 will have 10.0.2.7/192.168.7.1

Low level controller

Hamster LLC connection scheme (for V4 and V5)

Description

The LLC board is 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 new firmware (voids warranty, can be provided per request)

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

Project:

Master

Description:

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

Hardware

  • WiFi ew-7811uac EDIMAX AC600
  • Camera raspberry Pi module v2
  • LiDar A2M8 (USB)
  • IMU AltIMU-10 v5
  • Ethernet (to slave)
  • Low level controller (via UART)

Slave

Description

GPS data broadcaster

Hardware

  • GPS Mouse - GP-808G
  • Ethernet (to master)

Subcategories

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