Difference between revisions of "Category:Hamster"

From cogniteam
Jump to: navigation, search
(Hamster versions)
 
(81 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{DISPLAYTITLE:Hamster}}
 
{{DISPLAYTITLE:Hamster}}
  
System overview
+
<gallery widths=200px heights=200px mode="packed-hover">
 +
File:SaritTedx.PNG|frame|300px|Hamster in TEDX
 +
File:Intel.png|frame|300px|Hamster with Movidius
 +
File:HamsterNatbag.PNG|frame|300px|Ben Gurion Airport
 +
</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 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 ===
 +
The Hamster is being used as a research platform at various institutes
 +
* [https://wiki.cogni.io/index.php/HamsterResearchBGU Ben Gurion University]
 +
* [https://wiki.cogni.io/index.php/HamsterResearchBIU Bar Ilan University ]
 +
* [https://wiki.cogni.io/index.php/HamsterResearchColman College of Management ]
 +
* [https://wiki.cogni.io/index.php/HamsterResearchHIT Holon Institute of technology ]
 +
* [https://wiki.cogni.io/index.php/MERL Mitsubishi Research lab ]
 +
* [https://wiki.cogni.io/index.php/Intel Intel Innovation Lab ]
  
 +
=== Hamster research papers ===
 +
* [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://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 ===
 
<gallery widths=200px heights=200px mode="packed-hover">
 
<gallery widths=200px heights=200px mode="packed-hover">
 
File:HamsterV3.png|frame|300px|HamsterV3  
 
File:HamsterV3.png|frame|300px|HamsterV3  
Line 10: Line 66:
 
File:HamsterV5.png|frame|300px|HamsterV5  
 
File:HamsterV5.png|frame|300px|HamsterV5  
 
</gallery>
 
</gallery>
 
<gallery widths=200px heights=200px mode="packed-hover">
 
File:SaritTedx.PNG|frame|300px|Hamster in TEDX
 
File:SaritTedx2.PNG|frame|300px|Hamster TEDx
 
</gallery>
 
 
==Hamster system==
 
  
 
===Robot's components===
 
===Robot's components===
Each robots have two raspberry pi computers on board - master and slave, and a low level controller.
+
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 connected 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 32: Line 81:
 
<strong>Switching between modes</strong>:
 
<strong>Switching between modes</strong>:
  
In order to change operation mode publish <strong>std_msgs/String message</strong> to <code>/mapping_command</code> topic, containing on e of the following strings:
+
In order to change the operation mode publish <strong>std_msgs/String message</strong> to <code>/mapping_command</code> topic, containing on e of the following strings:
 
* slam
 
* slam
 
* localization
 
* localization
Line 40: Line 89:
 
<syntaxhighlight lang="bash" line='line'>
 
<syntaxhighlight lang="bash" line='line'>
 
rostopic pub /mapping_command std_msgs/String "data: 'slam'"
 
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>
 
</syntaxhighlight>
  
 
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>
 +
 +
==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==
 +
 +
===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
 +
 +
<strong>Master:</strong>
 +
* IP: 10.0.2.n/192.168.n.1
 +
<strong>Slave:</strong>
 +
* 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==
 +
[[File:Hamster_LLC_connection_scheme.jpg|300px|thumb|right|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==
 +
<strong>Description:</strong>
 +
 +
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:
 +
 +
*[https://github.com/cogniteam/hamster_server]
 +
 +
==Master==
 +
 +
<strong>Description:</strong>
 +
 +
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)

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.