|
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
Additional Links
Maintainers
- Kei Okada
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.
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.
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 inpulse-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.
- this modification is needed for starting
- 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
- this modification is needed for overriding default speaker setting in
- 2019/04/19: launch
jsk_fetch_startup/fetch_bringup.launch
byfetch
user in/etc/init/jsk-fetch-startup.conf
- some nodes save files by
fetch
user
- some nodes save files by
- 2019/04/19: add arg
launch_teleop
in/etc/ros/indigo/robot.launch
.- We sent PR to upstream fetchrobotics/fetch_robots PR#40.
- 2019/04/19: run
/etc/ros/indigo/robot.launch
witharg
launch_teleop:=false
.-
teleop
in/etc/ros/indigo/robot.launch
nodes were conflicted withteleop
nodes in jsk_fetch_startup/launch/fetch_teleop.xml
-
Apps
Note
You can not run this on Firefox. Please use Google Chrome.
Add fetch to rwt_app_chooser
- 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.
- Click
ADD A ROBOT
button - Select
Fetch
atRobot type
- Type
fetch15
atRobot name
- Type
ws://{fetch's IP adress}:9090/
atRobot URI
- Click
ADD ROBOT
button
Execute demos
- Click
fetch15
atSelect Robot
window - Select task which are shown with icons.
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
Package Dependencies
System Dependencies
Name |
---|
touchegg |
Dependant Packages
Name | Deps |
---|---|
jsk_robot |
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
Services
Plugins
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
Additional Links
Maintainers
- Kei Okada
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.
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.
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 inpulse-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.
- this modification is needed for starting
- 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
- this modification is needed for overriding default speaker setting in
- 2019/04/19: launch
jsk_fetch_startup/fetch_bringup.launch
byfetch
user in/etc/init/jsk-fetch-startup.conf
- some nodes save files by
fetch
user
- some nodes save files by
- 2019/04/19: add arg
launch_teleop
in/etc/ros/indigo/robot.launch
.- We sent PR to upstream fetchrobotics/fetch_robots PR#40.
- 2019/04/19: run
/etc/ros/indigo/robot.launch
witharg
launch_teleop:=false
.-
teleop
in/etc/ros/indigo/robot.launch
nodes were conflicted withteleop
nodes in jsk_fetch_startup/launch/fetch_teleop.xml
-
Apps
Note
You can not run this on Firefox. Please use Google Chrome.
Add fetch to rwt_app_chooser
- 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.
- Click
ADD A ROBOT
button - Select
Fetch
atRobot type
- Type
fetch15
atRobot name
- Type
ws://{fetch's IP adress}:9090/
atRobot URI
- Click
ADD ROBOT
button
Execute demos
- Click
fetch15
atSelect Robot
window - Select task which are shown with icons.
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
Package Dependencies
System Dependencies
Name |
---|
touchegg |
Dependant Packages
Name | Deps |
---|---|
jsk_robot |
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