Difference between revisions of "Category:Hamster"

From cogniteam
Jump to: navigation, search
(Hamster versions)
 
(58 intermediate revisions by 2 users not shown)
Line 2: Line 2:
  
 
<gallery widths=200px heights=200px mode="packed-hover">
 
<gallery widths=200px heights=200px mode="packed-hover">
File:HamsterV3.png|frame|300px|HamsterV3
+
File:SaritTedx.PNG|frame|300px|Hamster in TEDX
File:HamsterV4roof.jpg|frame|300px|HamsterV4
+
File:Intel.png|frame|300px|Hamster with Movidius
File:HamsterV5.png|frame|300px|HamsterV5
+
File:HamsterNatbag.PNG|frame|300px|Ben Gurion Airport
 
</gallery>
 
</gallery>
  
<gallery widths=200px heights=200px mode="packed-hover">
+
 
File:SaritTedx.PNG|frame|300px|Hamster in TEDX
+
==Quick start==
File:SaritTedx2.PNG|frame|300px|Hamster TEDx
+
 
</gallery>
+
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 ===
 +
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">
 +
File:HamsterV3.png|frame|300px|HamsterV3
 +
File:HamsterV4roof.jpg|frame|300px|HamsterV4
 +
File:HamsterV5.png|frame|300px|HamsterV5
 +
</gallery>
  
 
===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 29: 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 43: Line 95:
  
 
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==
 
==Hamster wireless network==
Line 56: Line 128:
 
===Hamster===
 
===Hamster===
  
* User = pi
+
* User = pi / hamster (on up squared)
 
* Password = hamster
 
* Password = hamster
  
 
<strong>Master:</strong>
 
<strong>Master:</strong>
* IP: 10.0.2.n/192.168.1.n
+
* IP: 10.0.2.n/192.168.n.1
 
<strong>Slave:</strong>
 
<strong>Slave:</strong>
 
* IP: 192.168.n.2
 
* IP: 192.168.n.2
  
n - stands for agent id, e.g agent1 will have 10.0.2.1/192.168.1.1
+
n - stands for agent id, e.g agent7 will have 10.0.2.7/192.168.7.1
  
 
==Low level controller==
 
==Low level controller==
[[File:Hamster_LLC_connection_scheme.jpg|300px|thumb|right|Hamster Ardino connection scheme (for V4 and V5)]]
+
[[File:Hamster_LLC_connection_scheme.jpg|300px|thumb|right|Hamster LLC connection scheme (for V4 and V5)]]
 
Description
 
Description
  
Arduino based board responsible for interaction with hardware components such as:
+
The LLC board is responsible for interaction with hardware components such as:
 
* Motors (drive and steering)
 
* Motors (drive and steering)
 
* Encoders (mainly used for PID controller)
 
* Encoders (mainly used for PID controller)
Line 79: Line 151:
 
The LLC is connected to master computer via UART (serial)
 
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
+
A built-in switch is also provided for the possibility of loading new firmware (voids warranty, can be provided per request)
  
 
==Server==
 
==Server==
Line 88: 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:
  
1. [https://github.com/cogniteam/hamster_server.git hamster_server_launch]
+
*[https://github.com/cogniteam/hamster_server]
 
 
2. [http://wiki.ros.org/map_server map_server]
 
 
 
3. [https://github.com/cogniteam/hamster_server.git mapping_controller]
 
 
 
4. (Optional) [https://github.com/cogniteam/hamster_server.git mrm_control_panel]
 
 
 
  
 
==Master==
 
==Master==
Line 105: Line 170:
 
Majority of hardware is connected to the master pc, it also acts as network gateway for slave
 
Majority of hardware is connected to the master pc, it also acts as network gateway for slave
  
<strong>Hardware</strong>
+
===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)
 
  
<strong>Packages</strong>
+
==Slave==
 +
Description
 +
 
 +
GPS data broadcaster
 +
 
 +
===Hardware===
  
*[http://git.cogni.io:8001/hamster/hamster_mapping_controller mapping_controller]
+
* GPS Mouse - GP-808G
*[http://git.cogni.io:8001/hamster/hamster_launch.git hamster_launch]
+
* Ethernet (to master)
*[http://git.cogni.io:8001/hamster/raspicam.git raspicam]
 
*[http://git.cogni.io:8001/hamster/hamster_rplidar.git hamster_rplidar]
 
*[http://git.cogni.io:8001/hamster/hamster_wandering.git hamster_wandering]
 
*[http://git.cogni.io:8001/hamster/hamster_navigation.git hamster_navigation]
 
*[http://git.cogni.io:8001/hamster/tf_geometry.git tf_geometry]
 
*[http://git.cogni.io:8001/hamster/hamster_rplidar.git hamster_rplidar]
 
*[http://git.cogni.io:8001/hamster/laser_noise_filter.git 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:8001/hamster/cognialg_cpp.git hamster_api/cognialg_cpp]
 
*[http://git.cogni.io:8001/hamster/hamster_api_common_cpp.git hamster_api/hamster_api_common_cpp]
 
*[http://git.cogni.io:8001/hamster/hamster_api_server_cpp.git hamster_api/hamster_api_server_cpp]
 

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.