-
 
No version for distro humble. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/jsk-ros-pkg/jsk_robot.git
VCS Type git
VCS Version master
Last Updated 2024-05-01
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

jsk_fetch_startup data/boost_sound.wav is downloaded from https://www.youtube.com/watch?v=HM-xG0qXaeA

Additional Links

Maintainers

  • Kei Okada

Authors

No additional authors.

jsk_fetch_startup

SetUp (Running following commands in the first time)

Install a udev rule

rosrun jsk_fetch_startup install_udev.sh

For realsense

udev rule have to be manually installed according to this issue when using realsense-ros from ROS repository.

wget https://github.com/IntelRealSense/librealsense/raw/master/config/99-realsense-libusb.rules
sudo mv 99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger

supervisor

Important jobs for fetch operation are managed by supervisor.

Here is a list of jobs that are managed by supervisor.

  • roscore

    Start roscore

  • robot

    Launch Minimum ROS programs to run fetch

  • jsk-fetch-startup

    Launch ROS programs extended by JSK

  • jsk-network-monitor

    Restart the network manager automatically if ping does not work.

  • jsk-log-wifi

    Monitor network condition

  • jsk-app-scheduler

    Scheduler to launch app at a fixed time

  • jsk-object-detector

    Object detection using fetch’s head camera and coral_usb_ros

  • jsk-panorama-object-detector:

    Object detection using fetch’s 360 camera and coral_usb_ros

  • jsk-human-pose-estimator

    Human pose estimation using fetch’s head camera and coral_usb_ros

  • jsk-panorama-human-pose-estimator

    Human pose estimation using fetch’s 360 camera and coral_usb_ros

  • jsk-dialog

    Launch dialogflow_task_exective

  • jsk-gdrive

    Launch app to upload data to Goole Drive

  • jsk-dstat

    Monitor fetch’s resource using dstat command

  • jsk-lifelog

    Launch program to save fetch’s lifelog

Install supervisor config files. e.g. robot.conf, jsk_fetch_startup.conf

su -c 'rosrun jsk_fetch_startup install_supervisor.sh'

To show or change supervisor job status, access supervisor.FETCH_FQDN by web browser.

Previously, upstart was used, but it has been moved to supervisor. This is because of the convenience of job management via a web browser.

supervisor_status

cron

Install cron jobs for root user and fetch user. e.g. shutdown, update_workspace.

su -c 'rosrun jsk_fetch_startup install_cron.sh'

mongodb

sudo mkdir -p /var/lib/robot/mongodb_store/

# to see the db items from http://lcoalhost/rockmongo
sudo apt-get install apache2 libapache2-mod-php5 php5-mongo
wget "http://rockmongo.com/downloads/go?id=14" -O rockmongo.zip
unzip rockmongo.zip
sudo mv rockmongo-1.1.7 /var/www/html/rockmongo
# manually change following line in /var/www/html/rockmongo/config.php
# $MONGO["servers"][$i]["control_auth"] = false; // true;//enable control users, works only if mongo_auth=false

Coral Edge TPU

Create ROS workspace for Coral Edge TPU. Please see: https://github.com/knorth55/coral_usb_ros

Teleoperation

For the JSK safe teleop system, please see data flow diagram of safe_teleop.launch

The numbers assigned to the joystick are as follows.

joystick_numbered joystick_numbered2

Maintenance

re-roslaunch jsk_fetch_startup fetch_bringup.launch

sudo supervisorctl restart jsk-fetch-startup

re-roslaunch fetch_bringup fetch.launch

sudo supervisorctl restart robot

Clock Synchronization

install chrony and add server `gethostip -d fetch15` offline minpoll 8 to /etc/chrony/chrony.conf, restart chronyd by sudo /etc/init.d/chrony restart and wait for few seconds, if you get

$ chronyc tracking
Reference ID    : 133.11.216.145 (fetch15.jsk.imi.i.u-tokyo.ac.jp)
Stratum         : 4
Ref time (UTC)  : Wed Oct 26 12:32:56 2016
System time     : 0.000006418 seconds fast of NTP time
Last offset     : 0.003160040 seconds
RMS offset      : 0.003160040 seconds
Frequency       : 11.749 ppm fast
Residual freq   : -137.857 ppm
Skew            : 6.444 ppm
Root delay      : 0.185045 seconds
Root dispersion : 0.018803 seconds
Update interval : 2.1 seconds
Leap status     : Normal

it works, if you get 127.127.1.1 for Reference ID, something wrong

Network

General description

Fetch has wired and wireless network connections. If we use both of wired and wireless connections as DHCP, DNS holds two IP addresses for same hostname (fetch15 in this case). This cause problems in network such as ROS communication or ssh connection.

The solution we take now (2016/11/01) is using wired connection as static IP. By doing so, DNS holds only one IP adress (for wireless connection) for fetch hostname.

Case description

If you see the following result, it is OK.

$ nslookup fetch15.jsk.imi.i.u-tokyo.ac.jp
Server:         127.0.1.1
Address:        127.0.1.1#53

Name:           fetch15.jsk.imi.i.u-tokyo.ac.jp
Address: 133.11.216.145

If two or more IP addresses apper, something is wrong. Please connect display, open a window of network manager, and check that wired connection uses static IP.

Access point

Define access point setting, such as ssid:

cd /etc/NetworkManager/system-connections

Log

tmuxinator makes it easy to check the important logs of fetch from command line. Currently, it shows the logs of the supervisor jobs.

Install tmuxinator config.

rosrun jsk_fetch_startup install_tmuxinator.sh

Show logs

tmuxinator log

Show all logs

tmuxinator log

Administration

  • 2016/10/26 add allow 133.11.216/8 to /etc/chrony/chrony.conf
  • 2018/08/26 add 0 10 * * 1-5 /home/fetch/ros/indigo_robot/devel/env.sh rosservice call /fetch15/start_app "name: 'jsk_fetch_startup/go_to_kitchen'" to crontab
    • fetch goes to 73B2 kitchen at 10:00 AM from Monday to Friday.
  • 2019/04/19: add fetch user in pulse-access group.
  • 2019/04/19: set start on runlevel [2345] in /etc/init/pulseaudio.conf.
    • this modification is needed for starting pulseaudio in boot.
    • pulseaudio is required to register USB speaker on head in boot.
  • 2019/04/19: set env DISALLOW_MODULE_LOADING=0 in /etc/init/pulseaudio.conf.
    • this modification is needed for overriding default speaker setting in /etc/init/jsk-fetch-startup.conf
    • overriding default speaker setting to use USB speaker on head is done with pactl set-default-sink $AUDIO_DEVICE in /etc/init/jsk-fetch-startup.conf
  • 2019/04/19: launch jsk_fetch_startup/fetch_bringup.launch by fetch user in /etc/init/jsk-fetch-startup.conf
    • some nodes save files by fetch user
  • 2019/04/19: add arg launch_teleop in /etc/ros/indigo/robot.launch.
  • 2019/04/19: run /etc/ros/indigo/robot.launch with arg launch_teleop:=false.

Apps

Note

You can not run this on Firefox. Please use Google Chrome.

Add fetch to rwt_app_chooser

  1. Access http://tork-a.github.io/visualization_rwt/rwt_app_chooser.
    • Be careful to access the site via http, not https, to to enable websocket communication.
    • Modern browsers may automatically redirect from http to https.
  2. Click ADD A ROBOT button
  3. Select Fetch at Robot type
  4. Type fetch15 at Robot name
  5. Type ws://{fetch's IP adress}:9090/ at Robot URI
  6. Click ADD ROBOT button

Execute demos

  1. Click fetch15 at Select Robot window
  2. Select task which are shown with icons.

select_app

CHANGELOG

Changelog for package jsk_fetch_startup

1.1.0 (2017-07-16)

  • Enable safe teleop for fetch (#801)
    • fetch_gazebo_bringup.launch and fetch_teleop.xml both starts cmd_vel_mux, add roslaunch_add_file_check fetch_gazebo_bringup.launch
    • add roslaunch_depends.py from https://github.com/ros/ros_comm/pull/998 to support if, https://github.com/ros/ros_comm/issues/953 could not load launch file with args directory
    • jsk_fetch_startup/package.xml: missing joy, topic_tools, fetch_teleop depends
    • launch/fetch_teleop.xml run unsafe_warning.l directory, not by roseus package
    • jsk_fetch_startup/package.xml: missing fetch_moveit_config depends
    • [jsk_fetch_startup] exclude fetch_bringup.launch from check
    • [jsk_fetch_startup] move unsafe_warning.l to jsk_robot_startup / enable unsafe_warning on fetch
    • [jsk_fetch_startup] add launch for safe teleop
  • [jsk_pr2_startup] fix: init pose parameter typo for gazebo (#753)
    • [jsk_fetch_startup][fetch_gazebo_73b2.launch] fix: param name typo
  • [jsk_fetch_startup][fetch_bringup.launch] fix: robot/type robot/name (#752)
  • [jsk_fetch_startup][warning.py] fix: suppress warning: 'self.robot_state_msgs is not initialized' (#750 )
  • Contributors: Kei Okada, Yuki Furuta

1.0.9 (2016-11-09)

1.0.8 (2016-11-08)

1.0.7 (2016-11-02)

  • add network instruction to fetch README
  • [jsk_fetch_startup] add fetch bringup launch files for gazebo (#692 )
    • add gazebo/fetch_gazebo_73b2.launch
    • add fetch_gazebo_bringup.launch
    • fetch_bringup.launch: cleanup launch file
    • fetch_bringup.launch: add launch_move_base args
    • add fetch_driver_msgs to package.xml
    • fetch_bringup.launch: add launch_moveit args
    • add more admin docs
  • [jsk_robot_lifelog] move logging program from jsk_pr2_startup/jsk_pr2_lifelog to jsk_robot_startup/lifelog (#672 )
  • [jsk_fetch_startup/scripts/warning.py] bugfix: error with no robot_state msg is subscribed
  • Contributors: Kei Okada, Masaki Murooka, Yuki Furuta

1.0.6 (2016-06-17)

1.0.5 (2016-04-18)

1.0.4 (2016-03-21)

  • fetch_bringup.launch: fix arg boot_sound
  • Contributors: Kei Okada

1.0.3 (2016-03-05)

  • add jsk_fetch_robot package
  • Contributors: Kei Okada

1.0.2 (2016-02-14)

1.0.1 (2015-11-19)

1.0.0 (2015-11-06 15:17)

0.0.13 (2015-11-06 15:04)

0.0.12 (2015-11-06 14:47)

0.0.11 (2015-09-01)

0.0.10 (2015-08-16)

0.0.9 (2015-08-03)

0.0.8 (2015-07-16)

0.0.7 (2015-06-11)

0.0.6 (2015-04-10)

0.0.5 (2015-04-08)

0.0.4 (2015-01-30)

0.0.3 (2015-01-09)

0.0.2 (2015-01-08)

0.0.1 (2014-12-25)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/fetch_bringup.launch
      • hostname [default: fetch15]
      • launch_teleop [default: true]
      • launch_move_base [default: true]
      • launch_sound_play [default: true]
      • launch_insta360 [default: true]
      • use_voice_text [default: true]
      • boot_sound [default: false]
      • map_frame [default: eng2]
      • map_file [default: $(find jsk_maps)/raw_maps/eng2-7f-0.05.yaml]
      • keepout_map_file [default: $(find jsk_maps)/raw_maps/eng2-7f-0.05_keepout.yaml]
      • use_build_map [default: false]
      • use_keepout [default: true]
      • fetch_switchbot [default: true]
      • publish_tf [default: false]
      • launch_soundplay [default: false]
  • launch/fetch_visual_odom.launch
      • topic_odom_out [default: odom_visual]
      • odom_frame_id [default: odom_visual]
      • topic_tf [default: /tf]
  • launch/rviz.launch
  • launch/rviz_record.launch
      • rviz_namespace [default: rviz]
      • throttled_rate [default: 5.0]
      • throttle_rviz [default: true]
  • launch/fetch_gazebo_bringup.launch
      • launch_gazebo [default: true]
      • launch_gui [default: true]
      • launch_moveit [default: true]
      • launch_move_base [default: true]
      • launch_sound_play [default: true]
      • paused [default: false]
      • world [default: worlds/empty.world]
      • map_frame [default: eng2]
      • INITIAL_POSE_X [default: 0.0]
      • INITIAL_POSE_Y [default: 0.0]
      • INITIAL_POSE_Z [default: 0.0]
      • INITIAL_POSE_YAW [default: 0.0]
  • launch/fetch_tweet.launch
      • image_topics [default: /head_camera/rgb/image_rect_color]
      • remap_odom_state [default: /odom_combined]
  • launch/rosbag_record.launch
      • rosbag — rosbag file path
      • compress [default: false] — whether compress rosbag or not.
      • other_topics [default: ]
      • use_regex [default: true] — whether include regex in topics or not.
      • other_options [default: ]
  • launch/fetch_insta360_indigo.launch
  • launch/rosbag_play.launch
      • rosbag
      • manager [default: rosbag_play_nodelet_manager]
      • launch_nodelet_manager [default: true]
      • loop [default: true]
      • gui [default: false]
      • start_time [default: 0]
      • duration_time [default: 0]
      • duration [default: --duration $(arg duration_time)]
      • duration [default: ]
      • audio_play [default: false]
      • audio_device [default: ]
  • launch/fetch.launch
      • launch_teleop [default: true]
      • launch_moveit [default: true]
      • use_base_camera_mount [default: true]
      • use_head_box [default: true]
      • launch_diagnostics_agg [default: false]
      • use_head_l515 [default: true]
      • use_realsense [default: true]
      • use_fetch_description [default: false]
      • RS_SERIAL_NO_T265 [default: $(optenv RS_SERIAL_NO_T265)]
      • RS_SERIAL_NO_D435_FRONTRIGHT [default: $(optenv RS_SERIAL_NO_D435_FRONTRIGHT)]
      • RS_SERIAL_NO_D435_FRONTLEFT [default: $(optenv RS_SERIAL_NO_D435_FRONTLEFT)]
      • RS_SERIAL_NO_L515_HEAD [default: $(optenv RS_SERIAL_NO_L515_HEAD)]
      • debug [default: false]
      • rgb_camera_info_url [default: file:///etc/ros/$(env ROS_DISTRO)/depth_latest.yaml]
      • depth_camera_info_url [default: file:///etc/ros/$(env ROS_DISTRO)/depth_latest.yaml]
  • launch/gazebo/fetch_gazebo_73b2.launch
      • INITIAL_POSE_X [default: 1.0]
      • INITIAL_POSE_Y [default: 0.0]
      • INITIAL_POSE_Z [default: 0.0]
      • INITIAL_POSE_YAW [default: 0.0]
  • launch/fetch_rosserial.launch
      • logger_level [default: info]
  • launch/fetch_insta360_melodic.launch
  • launch/fetch_realsense_bringup.launch
      • respawn [default: true]
      • RS_SERIAL_NO_T265 [default: ]
      • RS_SERIAL_NO_D435_FRONTRIGHT [default: ]
      • RS_SERIAL_NO_D435_FRONTLEFT [default: ]
      • RS_SERIAL_NO_L515_HEAD [default: ]
  • launch/devices/realsense_nodelet.launch.xml
      • serial_no [default: ]
      • usb_port_id [default: ]
      • device_type [default: ]
      • tf_prefix [default: ]
      • json_file_path [default: ]
      • rosbag_filename [default: ]
      • respawn [default: false]
      • output [default: screen]
      • fisheye_width [default: 0]
      • fisheye_height [default: 0]
      • enable_fisheye [default: false]
      • enable_fisheye1 [default: false]
      • enable_fisheye2 [default: false]
      • depth_width [default: 640]
      • depth_height [default: 480]
      • enable_depth [default: true]
      • confidence_width [default: 640]
      • confidence_height [default: 480]
      • enable_confidence [default: true]
      • confidence_fps [default: 30]
      • infra_width [default: 640]
      • infra_height [default: 480]
      • enable_infra [default: false]
      • enable_infra1 [default: false]
      • enable_infra2 [default: false]
      • infra_rgb [default: false]
      • color_width [default: 640]
      • color_height [default: 480]
      • enable_color [default: true]
      • fisheye_fps [default: 30]
      • depth_fps [default: 30]
      • infra_fps [default: 30]
      • color_fps [default: 30]
      • gyro_fps [default: 0]
      • accel_fps [default: 0]
      • enable_gyro [default: false]
      • enable_accel [default: false]
      • enable_pose [default: false]
      • enable_pointcloud [default: false]
      • pointcloud_texture_stream [default: RS2_STREAM_COLOR]
      • pointcloud_texture_index [default: 0]
      • allow_no_texture_points [default: false]
      • ordered_pc [default: false]
      • enable_sync [default: false]
      • align_depth [default: false]
      • base_frame_id [default: $(arg tf_prefix)_link]
      • depth_frame_id [default: $(arg tf_prefix)_depth_frame]
      • infra1_frame_id [default: $(arg tf_prefix)_infra1_frame]
      • infra2_frame_id [default: $(arg tf_prefix)_infra2_frame]
      • color_frame_id [default: $(arg tf_prefix)_color_frame]
      • fisheye_frame_id [default: $(arg tf_prefix)_fisheye_frame]
      • fisheye1_frame_id [default: $(arg tf_prefix)_fisheye1_frame]
      • fisheye2_frame_id [default: $(arg tf_prefix)_fisheye2_frame]
      • accel_frame_id [default: $(arg tf_prefix)_accel_frame]
      • gyro_frame_id [default: $(arg tf_prefix)_gyro_frame]
      • pose_frame_id [default: $(arg tf_prefix)_pose_frame]
      • depth_optical_frame_id [default: $(arg tf_prefix)_depth_optical_frame]
      • infra1_optical_frame_id [default: $(arg tf_prefix)_infra1_optical_frame]
      • infra2_optical_frame_id [default: $(arg tf_prefix)_infra2_optical_frame]
      • color_optical_frame_id [default: $(arg tf_prefix)_color_optical_frame]
      • fisheye_optical_frame_id [default: $(arg tf_prefix)_fisheye_optical_frame]
      • fisheye1_optical_frame_id [default: $(arg tf_prefix)_fisheye1_optical_frame]
      • fisheye2_optical_frame_id [default: $(arg tf_prefix)_fisheye2_optical_frame]
      • accel_optical_frame_id [default: $(arg tf_prefix)_accel_optical_frame]
      • gyro_optical_frame_id [default: $(arg tf_prefix)_gyro_optical_frame]
      • imu_optical_frame_id [default: $(arg tf_prefix)_imu_optical_frame]
      • pose_optical_frame_id [default: $(arg tf_prefix)_pose_optical_frame]
      • aligned_depth_to_color_frame_id [default: $(arg tf_prefix)_aligned_depth_to_color_frame]
      • aligned_depth_to_infra1_frame_id [default: $(arg tf_prefix)_aligned_depth_to_infra1_frame]
      • aligned_depth_to_infra2_frame_id [default: $(arg tf_prefix)_aligned_depth_to_infra2_frame]
      • aligned_depth_to_fisheye_frame_id [default: $(arg tf_prefix)_aligned_depth_to_fisheye_frame]
      • aligned_depth_to_fisheye1_frame_id [default: $(arg tf_prefix)_aligned_depth_to_fisheye1_frame]
      • aligned_depth_to_fisheye2_frame_id [default: $(arg tf_prefix)_aligned_depth_to_fisheye2_frame]
      • publish_tf [default: true]
      • tf_publish_rate [default: 0]
      • odom_frame_id [default: $(arg tf_prefix)_odom_frame]
      • topic_odom_in [default: $(arg tf_prefix)/odom_in]
      • calib_odom_file [default: ]
      • publish_odom_tf [default: true]
      • filters [default: ]
      • clip_distance [default: -1]
      • linear_accel_cov [default: 0.01]
      • initial_reset [default: false]
      • unite_imu_method [default: none]
  • launch/fetch_lifelog.xml
      • use_system_mongod [default: true]
      • map_frame [default: map]
      • vital_check [default: false]
  • launch/fetch_sensors.xml
      • throttled_rate [default: 5.0]
      • launch_manager [default: true]
      • throttle_head_rgb [default: true]
      • throttle_head_depth [default: true]
      • throttle_head_cloud [default: true]
      • throttle_base_scan [default: true]
      • manager [default: head_camera/head_camera_nodelet_manager]
      • manager [default: throttle_nodelet_manager]
  • launch/fetch_teleop.xml
      • use_safe_teleop [default: true]
      • enable_auto_dock [default: true]
      • joy_device [default: /dev/ps3joy]
      • launch_fetch_bringup_teleop [default: false]
      • odom_topic [default: odom]
  • apps/call_k_okada/call_k_okada.xml
  • apps/upload_notification/upload_notification.xml
  • apps/software_runstop/software_runstop.xml
  • apps/go_to_kitchen/go_to_kitchen.xml
  • apps/welcome_to_jsk/welcome_to_jsk.xml
  • apps/speak_battery/speak_battery.xml
  • apps/light_on/light_on.xml
  • apps/hello_world/hello_world.xml
  • apps/tweet/tweet.xml
  • apps/auto_dock/auto_dock.xml
  • apps/undock/undock.xml
  • apps/dock/dock.xml
  • apps/patrol/patrol.xml
  • apps/light_off/light_off.xml
  • apps/time_signal/time_signal.xml

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged jsk_fetch_startup at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/jsk-ros-pkg/jsk_robot.git
VCS Type git
VCS Version master
Last Updated 2024-05-01
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

jsk_fetch_startup data/boost_sound.wav is downloaded from https://www.youtube.com/watch?v=HM-xG0qXaeA

Additional Links

Maintainers

  • Kei Okada

Authors

No additional authors.

jsk_fetch_startup

SetUp (Running following commands in the first time)

Install a udev rule

rosrun jsk_fetch_startup install_udev.sh

For realsense

udev rule have to be manually installed according to this issue when using realsense-ros from ROS repository.

wget https://github.com/IntelRealSense/librealsense/raw/master/config/99-realsense-libusb.rules
sudo mv 99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger

supervisor

Important jobs for fetch operation are managed by supervisor.

Here is a list of jobs that are managed by supervisor.

  • roscore

    Start roscore

  • robot

    Launch Minimum ROS programs to run fetch

  • jsk-fetch-startup

    Launch ROS programs extended by JSK

  • jsk-network-monitor

    Restart the network manager automatically if ping does not work.

  • jsk-log-wifi

    Monitor network condition

  • jsk-app-scheduler

    Scheduler to launch app at a fixed time

  • jsk-object-detector

    Object detection using fetch’s head camera and coral_usb_ros

  • jsk-panorama-object-detector:

    Object detection using fetch’s 360 camera and coral_usb_ros

  • jsk-human-pose-estimator

    Human pose estimation using fetch’s head camera and coral_usb_ros

  • jsk-panorama-human-pose-estimator

    Human pose estimation using fetch’s 360 camera and coral_usb_ros

  • jsk-dialog

    Launch dialogflow_task_exective

  • jsk-gdrive

    Launch app to upload data to Goole Drive

  • jsk-dstat

    Monitor fetch’s resource using dstat command

  • jsk-lifelog

    Launch program to save fetch’s lifelog

Install supervisor config files. e.g. robot.conf, jsk_fetch_startup.conf

su -c 'rosrun jsk_fetch_startup install_supervisor.sh'

To show or change supervisor job status, access supervisor.FETCH_FQDN by web browser.

Previously, upstart was used, but it has been moved to supervisor. This is because of the convenience of job management via a web browser.

supervisor_status

cron

Install cron jobs for root user and fetch user. e.g. shutdown, update_workspace.

su -c 'rosrun jsk_fetch_startup install_cron.sh'

mongodb

sudo mkdir -p /var/lib/robot/mongodb_store/

# to see the db items from http://lcoalhost/rockmongo
sudo apt-get install apache2 libapache2-mod-php5 php5-mongo
wget "http://rockmongo.com/downloads/go?id=14" -O rockmongo.zip
unzip rockmongo.zip
sudo mv rockmongo-1.1.7 /var/www/html/rockmongo
# manually change following line in /var/www/html/rockmongo/config.php
# $MONGO["servers"][$i]["control_auth"] = false; // true;//enable control users, works only if mongo_auth=false

Coral Edge TPU

Create ROS workspace for Coral Edge TPU. Please see: https://github.com/knorth55/coral_usb_ros

Teleoperation

For the JSK safe teleop system, please see data flow diagram of safe_teleop.launch

The numbers assigned to the joystick are as follows.

joystick_numbered joystick_numbered2

Maintenance

re-roslaunch jsk_fetch_startup fetch_bringup.launch

sudo supervisorctl restart jsk-fetch-startup

re-roslaunch fetch_bringup fetch.launch

sudo supervisorctl restart robot

Clock Synchronization

install chrony and add server `gethostip -d fetch15` offline minpoll 8 to /etc/chrony/chrony.conf, restart chronyd by sudo /etc/init.d/chrony restart and wait for few seconds, if you get

$ chronyc tracking
Reference ID    : 133.11.216.145 (fetch15.jsk.imi.i.u-tokyo.ac.jp)
Stratum         : 4
Ref time (UTC)  : Wed Oct 26 12:32:56 2016
System time     : 0.000006418 seconds fast of NTP time
Last offset     : 0.003160040 seconds
RMS offset      : 0.003160040 seconds
Frequency       : 11.749 ppm fast
Residual freq   : -137.857 ppm
Skew            : 6.444 ppm
Root delay      : 0.185045 seconds
Root dispersion : 0.018803 seconds
Update interval : 2.1 seconds
Leap status     : Normal

it works, if you get 127.127.1.1 for Reference ID, something wrong

Network

General description

Fetch has wired and wireless network connections. If we use both of wired and wireless connections as DHCP, DNS holds two IP addresses for same hostname (fetch15 in this case). This cause problems in network such as ROS communication or ssh connection.

The solution we take now (2016/11/01) is using wired connection as static IP. By doing so, DNS holds only one IP adress (for wireless connection) for fetch hostname.

Case description

If you see the following result, it is OK.

$ nslookup fetch15.jsk.imi.i.u-tokyo.ac.jp
Server:         127.0.1.1
Address:        127.0.1.1#53

Name:           fetch15.jsk.imi.i.u-tokyo.ac.jp
Address: 133.11.216.145

If two or more IP addresses apper, something is wrong. Please connect display, open a window of network manager, and check that wired connection uses static IP.

Access point

Define access point setting, such as ssid:

cd /etc/NetworkManager/system-connections

Log

tmuxinator makes it easy to check the important logs of fetch from command line. Currently, it shows the logs of the supervisor jobs.

Install tmuxinator config.

rosrun jsk_fetch_startup install_tmuxinator.sh

Show logs

tmuxinator log

Show all logs

tmuxinator log

Administration

  • 2016/10/26 add allow 133.11.216/8 to /etc/chrony/chrony.conf
  • 2018/08/26 add 0 10 * * 1-5 /home/fetch/ros/indigo_robot/devel/env.sh rosservice call /fetch15/start_app "name: 'jsk_fetch_startup/go_to_kitchen'" to crontab
    • fetch goes to 73B2 kitchen at 10:00 AM from Monday to Friday.
  • 2019/04/19: add fetch user in pulse-access group.
  • 2019/04/19: set start on runlevel [2345] in /etc/init/pulseaudio.conf.
    • this modification is needed for starting pulseaudio in boot.
    • pulseaudio is required to register USB speaker on head in boot.
  • 2019/04/19: set env DISALLOW_MODULE_LOADING=0 in /etc/init/pulseaudio.conf.
    • this modification is needed for overriding default speaker setting in /etc/init/jsk-fetch-startup.conf
    • overriding default speaker setting to use USB speaker on head is done with pactl set-default-sink $AUDIO_DEVICE in /etc/init/jsk-fetch-startup.conf
  • 2019/04/19: launch jsk_fetch_startup/fetch_bringup.launch by fetch user in /etc/init/jsk-fetch-startup.conf
    • some nodes save files by fetch user
  • 2019/04/19: add arg launch_teleop in /etc/ros/indigo/robot.launch.
  • 2019/04/19: run /etc/ros/indigo/robot.launch with arg launch_teleop:=false.

Apps

Note

You can not run this on Firefox. Please use Google Chrome.

Add fetch to rwt_app_chooser

  1. Access http://tork-a.github.io/visualization_rwt/rwt_app_chooser.
    • Be careful to access the site via http, not https, to to enable websocket communication.
    • Modern browsers may automatically redirect from http to https.
  2. Click ADD A ROBOT button
  3. Select Fetch at Robot type
  4. Type fetch15 at Robot name
  5. Type ws://{fetch's IP adress}:9090/ at Robot URI
  6. Click ADD ROBOT button

Execute demos

  1. Click fetch15 at Select Robot window
  2. Select task which are shown with icons.

select_app

CHANGELOG

Changelog for package jsk_fetch_startup

1.1.0 (2017-07-16)

  • Enable safe teleop for fetch (#801)
    • fetch_gazebo_bringup.launch and fetch_teleop.xml both starts cmd_vel_mux, add roslaunch_add_file_check fetch_gazebo_bringup.launch
    • add roslaunch_depends.py from https://github.com/ros/ros_comm/pull/998 to support if, https://github.com/ros/ros_comm/issues/953 could not load launch file with args directory
    • jsk_fetch_startup/package.xml: missing joy, topic_tools, fetch_teleop depends
    • launch/fetch_teleop.xml run unsafe_warning.l directory, not by roseus package
    • jsk_fetch_startup/package.xml: missing fetch_moveit_config depends
    • [jsk_fetch_startup] exclude fetch_bringup.launch from check
    • [jsk_fetch_startup] move unsafe_warning.l to jsk_robot_startup / enable unsafe_warning on fetch
    • [jsk_fetch_startup] add launch for safe teleop
  • [jsk_pr2_startup] fix: init pose parameter typo for gazebo (#753)
    • [jsk_fetch_startup][fetch_gazebo_73b2.launch] fix: param name typo
  • [jsk_fetch_startup][fetch_bringup.launch] fix: robot/type robot/name (#752)
  • [jsk_fetch_startup][warning.py] fix: suppress warning: 'self.robot_state_msgs is not initialized' (#750 )
  • Contributors: Kei Okada, Yuki Furuta

1.0.9 (2016-11-09)

1.0.8 (2016-11-08)

1.0.7 (2016-11-02)

  • add network instruction to fetch README
  • [jsk_fetch_startup] add fetch bringup launch files for gazebo (#692 )
    • add gazebo/fetch_gazebo_73b2.launch
    • add fetch_gazebo_bringup.launch
    • fetch_bringup.launch: cleanup launch file
    • fetch_bringup.launch: add launch_move_base args
    • add fetch_driver_msgs to package.xml
    • fetch_bringup.launch: add launch_moveit args
    • add more admin docs
  • [jsk_robot_lifelog] move logging program from jsk_pr2_startup/jsk_pr2_lifelog to jsk_robot_startup/lifelog (#672 )
  • [jsk_fetch_startup/scripts/warning.py] bugfix: error with no robot_state msg is subscribed
  • Contributors: Kei Okada, Masaki Murooka, Yuki Furuta

1.0.6 (2016-06-17)

1.0.5 (2016-04-18)

1.0.4 (2016-03-21)

  • fetch_bringup.launch: fix arg boot_sound
  • Contributors: Kei Okada

1.0.3 (2016-03-05)

  • add jsk_fetch_robot package
  • Contributors: Kei Okada

1.0.2 (2016-02-14)

1.0.1 (2015-11-19)

1.0.0 (2015-11-06 15:17)

0.0.13 (2015-11-06 15:04)

0.0.12 (2015-11-06 14:47)

0.0.11 (2015-09-01)

0.0.10 (2015-08-16)

0.0.9 (2015-08-03)

0.0.8 (2015-07-16)

0.0.7 (2015-06-11)

0.0.6 (2015-04-10)

0.0.5 (2015-04-08)

0.0.4 (2015-01-30)

0.0.3 (2015-01-09)

0.0.2 (2015-01-08)

0.0.1 (2014-12-25)

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

  • launch/fetch_bringup.launch
      • hostname [default: fetch15]
      • launch_teleop [default: true]
      • launch_move_base [default: true]
      • launch_sound_play [default: true]
      • launch_insta360 [default: true]
      • use_voice_text [default: true]
      • boot_sound [default: false]
      • map_frame [default: eng2]
      • map_file [default: $(find jsk_maps)/raw_maps/eng2-7f-0.05.yaml]
      • keepout_map_file [default: $(find jsk_maps)/raw_maps/eng2-7f-0.05_keepout.yaml]
      • use_build_map [default: false]
      • use_keepout [default: true]
      • fetch_switchbot [default: true]
      • publish_tf [default: false]
      • launch_soundplay [default: false]
  • launch/fetch_visual_odom.launch
      • topic_odom_out [default: odom_visual]
      • odom_frame_id [default: odom_visual]
      • topic_tf [default: /tf]
  • launch/rviz.launch
  • launch/rviz_record.launch
      • rviz_namespace [default: rviz]
      • throttled_rate [default: 5.0]
      • throttle_rviz [default: true]
  • launch/fetch_gazebo_bringup.launch
      • launch_gazebo [default: true]
      • launch_gui [default: true]
      • launch_moveit [default: true]
      • launch_move_base [default: true]
      • launch_sound_play [default: true]
      • paused [default: false]
      • world [default: worlds/empty.world]
      • map_frame [default: eng2]
      • INITIAL_POSE_X [default: 0.0]
      • INITIAL_POSE_Y [default: 0.0]
      • INITIAL_POSE_Z [default: 0.0]
      • INITIAL_POSE_YAW [default: 0.0]
  • launch/fetch_tweet.launch
      • image_topics [default: /head_camera/rgb/image_rect_color]
      • remap_odom_state [default: /odom_combined]
  • launch/rosbag_record.launch
      • rosbag — rosbag file path
      • compress [default: false] — whether compress rosbag or not.
      • other_topics [default: ]
      • use_regex [default: true] — whether include regex in topics or not.
      • other_options [default: ]
  • launch/fetch_insta360_indigo.launch
  • launch/rosbag_play.launch
      • rosbag
      • manager [default: rosbag_play_nodelet_manager]
      • launch_nodelet_manager [default: true]
      • loop [default: true]
      • gui [default: false]
      • start_time [default: 0]
      • duration_time [default: 0]
      • duration [default: --duration $(arg duration_time)]
      • duration [default: ]
      • audio_play [default: false]
      • audio_device [default: ]
  • launch/fetch.launch
      • launch_teleop [default: true]
      • launch_moveit [default: true]
      • use_base_camera_mount [default: true]
      • use_head_box [default: true]
      • launch_diagnostics_agg [default: false]
      • use_head_l515 [default: true]
      • use_realsense [default: true]
      • use_fetch_description [default: false]
      • RS_SERIAL_NO_T265 [default: $(optenv RS_SERIAL_NO_T265)]
      • RS_SERIAL_NO_D435_FRONTRIGHT [default: $(optenv RS_SERIAL_NO_D435_FRONTRIGHT)]
      • RS_SERIAL_NO_D435_FRONTLEFT [default: $(optenv RS_SERIAL_NO_D435_FRONTLEFT)]
      • RS_SERIAL_NO_L515_HEAD [default: $(optenv RS_SERIAL_NO_L515_HEAD)]
      • debug [default: false]
      • rgb_camera_info_url [default: file:///etc/ros/$(env ROS_DISTRO)/depth_latest.yaml]
      • depth_camera_info_url [default: file:///etc/ros/$(env ROS_DISTRO)/depth_latest.yaml]
  • launch/gazebo/fetch_gazebo_73b2.launch
      • INITIAL_POSE_X [default: 1.0]
      • INITIAL_POSE_Y [default: 0.0]
      • INITIAL_POSE_Z [default: 0.0]
      • INITIAL_POSE_YAW [default: 0.0]
  • launch/fetch_rosserial.launch
      • logger_level [default: info]
  • launch/fetch_insta360_melodic.launch
  • launch/fetch_realsense_bringup.launch
      • respawn [default: true]
      • RS_SERIAL_NO_T265 [default: ]
      • RS_SERIAL_NO_D435_FRONTRIGHT [default: ]
      • RS_SERIAL_NO_D435_FRONTLEFT [default: ]
      • RS_SERIAL_NO_L515_HEAD [default: ]
  • launch/devices/realsense_nodelet.launch.xml
      • serial_no [default: ]
      • usb_port_id [default: ]
      • device_type [default: ]
      • tf_prefix [default: ]
      • json_file_path [default: ]
      • rosbag_filename [default: ]
      • respawn [default: false]
      • output [default: screen]
      • fisheye_width [default: 0]
      • fisheye_height [default: 0]
      • enable_fisheye [default: false]
      • enable_fisheye1 [default: false]
      • enable_fisheye2 [default: false]
      • depth_width [default: 640]
      • depth_height [default: 480]
      • enable_depth [default: true]
      • confidence_width [default: 640]
      • confidence_height [default: 480]
      • enable_confidence [default: true]
      • confidence_fps [default: 30]
      • infra_width [default: 640]
      • infra_height [default: 480]
      • enable_infra [default: false]
      • enable_infra1 [default: false]
      • enable_infra2 [default: false]
      • infra_rgb [default: false]
      • color_width [default: 640]
      • color_height [default: 480]
      • enable_color [default: true]
      • fisheye_fps [default: 30]
      • depth_fps [default: 30]
      • infra_fps [default: 30]
      • color_fps [default: 30]
      • gyro_fps [default: 0]
      • accel_fps [default: 0]
      • enable_gyro [default: false]
      • enable_accel [default: false]
      • enable_pose [default: false]
      • enable_pointcloud [default: false]
      • pointcloud_texture_stream [default: RS2_STREAM_COLOR]
      • pointcloud_texture_index [default: 0]
      • allow_no_texture_points [default: false]
      • ordered_pc [default: false]
      • enable_sync [default: false]
      • align_depth [default: false]
      • base_frame_id [default: $(arg tf_prefix)_link]
      • depth_frame_id [default: $(arg tf_prefix)_depth_frame]
      • infra1_frame_id [default: $(arg tf_prefix)_infra1_frame]
      • infra2_frame_id [default: $(arg tf_prefix)_infra2_frame]
      • color_frame_id [default: $(arg tf_prefix)_color_frame]
      • fisheye_frame_id [default: $(arg tf_prefix)_fisheye_frame]
      • fisheye1_frame_id [default: $(arg tf_prefix)_fisheye1_frame]
      • fisheye2_frame_id [default: $(arg tf_prefix)_fisheye2_frame]
      • accel_frame_id [default: $(arg tf_prefix)_accel_frame]
      • gyro_frame_id [default: $(arg tf_prefix)_gyro_frame]
      • pose_frame_id [default: $(arg tf_prefix)_pose_frame]
      • depth_optical_frame_id [default: $(arg tf_prefix)_depth_optical_frame]
      • infra1_optical_frame_id [default: $(arg tf_prefix)_infra1_optical_frame]
      • infra2_optical_frame_id [default: $(arg tf_prefix)_infra2_optical_frame]
      • color_optical_frame_id [default: $(arg tf_prefix)_color_optical_frame]
      • fisheye_optical_frame_id [default: $(arg tf_prefix)_fisheye_optical_frame]
      • fisheye1_optical_frame_id [default: $(arg tf_prefix)_fisheye1_optical_frame]
      • fisheye2_optical_frame_id [default: $(arg tf_prefix)_fisheye2_optical_frame]
      • accel_optical_frame_id [default: $(arg tf_prefix)_accel_optical_frame]
      • gyro_optical_frame_id [default: $(arg tf_prefix)_gyro_optical_frame]
      • imu_optical_frame_id [default: $(arg tf_prefix)_imu_optical_frame]
      • pose_optical_frame_id [default: $(arg tf_prefix)_pose_optical_frame]
      • aligned_depth_to_color_frame_id [default: $(arg tf_prefix)_aligned_depth_to_color_frame]
      • aligned_depth_to_infra1_frame_id [default: $(arg tf_prefix)_aligned_depth_to_infra1_frame]
      • aligned_depth_to_infra2_frame_id [default: $(arg tf_prefix)_aligned_depth_to_infra2_frame]
      • aligned_depth_to_fisheye_frame_id [default: $(arg tf_prefix)_aligned_depth_to_fisheye_frame]
      • aligned_depth_to_fisheye1_frame_id [default: $(arg tf_prefix)_aligned_depth_to_fisheye1_frame]
      • aligned_depth_to_fisheye2_frame_id [default: $(arg tf_prefix)_aligned_depth_to_fisheye2_frame]
      • publish_tf [default: true]
      • tf_publish_rate [default: 0]
      • odom_frame_id [default: $(arg tf_prefix)_odom_frame]
      • topic_odom_in [default: $(arg tf_prefix)/odom_in]
      • calib_odom_file [default: ]
      • publish_odom_tf [default: true]
      • filters [default: ]
      • clip_distance [default: -1]
      • linear_accel_cov [default: 0.01]
      • initial_reset [default: false]
      • unite_imu_method [default: none]
  • launch/fetch_lifelog.xml
      • use_system_mongod [default: true]
      • map_frame [default: map]
      • vital_check [default: false]
  • launch/fetch_sensors.xml
      • throttled_rate [default: 5.0]
      • launch_manager [default: true]
      • throttle_head_rgb [default: true]
      • throttle_head_depth [default: true]
      • throttle_head_cloud [default: true]
      • throttle_base_scan [default: true]
      • manager [default: head_camera/head_camera_nodelet_manager]
      • manager [default: throttle_nodelet_manager]
  • launch/fetch_teleop.xml
      • use_safe_teleop [default: true]
      • enable_auto_dock [default: true]
      • joy_device [default: /dev/ps3joy]
      • launch_fetch_bringup_teleop [default: false]
      • odom_topic [default: odom]
  • apps/call_k_okada/call_k_okada.xml
  • apps/upload_notification/upload_notification.xml
  • apps/software_runstop/software_runstop.xml
  • apps/go_to_kitchen/go_to_kitchen.xml
  • apps/welcome_to_jsk/welcome_to_jsk.xml
  • apps/speak_battery/speak_battery.xml
  • apps/light_on/light_on.xml
  • apps/hello_world/hello_world.xml
  • apps/tweet/tweet.xml
  • apps/auto_dock/auto_dock.xml
  • apps/undock/undock.xml
  • apps/dock/dock.xml
  • apps/patrol/patrol.xml
  • apps/light_off/light_off.xml
  • apps/time_signal/time_signal.xml

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged jsk_fetch_startup at Robotics Stack Exchange

No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.