Network Setup

In order to remotely operate the robots by using ROS middleware, you need to set on the robot the network credentials where it should conect and also the IP address of the computer running ROS, so called ROSMaster IP and Port. Here, there many alternatives such as create access point (hotspot) on your computer, or using a router.

HeRo WiFi only works with 2.4GHz network.

Setting HeRo Network Credentials, Name, Etc.

The robot firmware has two operation mode: config mode (works as a server for a web configuration page) and ros mode. In this stage you need to start the robots into config mode.

Turn on Hero while all sensors are covered, the RGB Led will be flashing pink.

image

In this config mode the robot will work as an WIFI access point. Now, uses your computer or smartphone to connect to this WIFI access point.

  • ESSID: HERO_ROBOT_*****
  • Password: s3cr3tp4ss

image

Open this link in your web browser http://192.168.4.1/ and set the network credentials where the robot should connect.

image

image

image

Save and turn off HeRo.

Connecting HeRo to and your computer

After properly set the network credentials on the robot, it should connect automatically in the network. The robot will blink blue for 2 seconds if it connected to the network, otherwise it will keep blink in red.

output

Once HeRo is connected with your computer, you won’t need to configure it again. (Just if you change your computer’s WIFI configuration). So, everytime you want to use HeRo you must just make sure that the network access point is up.

How to start a ROS Node

Run the hero_bringup.launch file with: (keep it running)

$ roslaunch hero_bringup hero_bringup.launch

Turn on the Robot(s). You will note some verbose messages on terminal. If everthings is fine, you will see a similiar result as the image bellow.

image

Available Topics

rostopic list
/hero_0/cmd_motor # command each motor PWM
/hero_0/encoder # encoder feedback
/hero_0/imu # gyro, acc, orientation estimation
/hero_0/laser # 8 IR distance sensor
/hero_0/led # top rgb leds command
/hero_0/odom # odometry estimation
/hero_0/position_controller/cmd_vel # position controller commands
/hero_0/velocity_controller/cmd_vel # velocity controller commands
/rosout
/rosout_agg
/tf # full HeRo tf tree

Available Services

$ rosservice list
/hero_3/pid_calibration
/hero_3/set_frequency
/hero_3/set_odom
/hero_3/set_pid_parameters

Teleop Demo

  • In another terminal, run hero_teleop.launch file to move Hero around, you must set the specific robot id:
  • $ roslaunch hero_bringup hero_teleop.launch id:=0
    

    output