Skip to content

Commit

Permalink
Release 0.3.0
Browse files Browse the repository at this point in the history
This release addresses several bugs identified by Guest Scientists,
simulator improvements as well as many internal changes.
The only API change is in the EkfState (removed augmented state).
  • Loading branch information
bcoltin committed Mar 14, 2018
1 parent e74a241 commit e7cd5c3
Show file tree
Hide file tree
Showing 411 changed files with 18,124 additions and 6,634 deletions.
21 changes: 12 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
cmake_minimum_required(VERSION 3.0)
project(Astrobee)
set(ASTROBEE_VERSION_MAJOR 0)
set(ASTROBEE_VERSION_MINOR 2)
set(ASTROBEE_VERSION_MINOR 3)

if ( "${CMAKE_VERSION}" VERSION_GREATER 3.0.0 )
cmake_policy(SET CMP0045 OLD)
Expand Down Expand Up @@ -96,9 +96,6 @@ option(ENABLE_QP
option(ENABLE_PICOFLEXX
"Enable support for building the PicoFlexx driver"
ON)
option(ENABLE_VIVE
"Enable support for HTC Vive tracking system"
OFF)
option(ENABLE_GAZEBO
"Enable support for building the Gazebo simulator"
ON)
Expand Down Expand Up @@ -203,20 +200,24 @@ find_package(dbow2 REQUIRED)
find_package(Alvar REQUIRED)
find_package(OpenMVG QUIET REQUIRED)
find_package(JsonCpp REQUIRED)
find_package(FFMPEG QUIET) # OPTIONAL
find_package(FFMPEG QUIET) # Optional
find_package(Deepdive QUIET) # Optional
if (ENABLE_PICOFLEXX)
find_package(royale REQUIRED)
endif (ENABLE_PICOFLEXX)



#find_package(PkgConfig REQUIRED)
#
#pkg_check_modules(YAMLCPP REQUIRED yaml-cpp)
#if (YAMLCPP_FOUND)
# set (YAMLCPP_INCLUDE_DIRS ${YAMLCPP_INCLUDEDIR})
#endif (YAMLCPP_FOUND)

pkg_check_modules(YAMLCPP REQUIRED yaml-cpp)
if (YAMLCPP_FOUND)
set (YAMLCPP_INCLUDE_DIRS ${YAMLCPP_INCLUDEDIR})
endif (YAMLCPP_FOUND)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused-local-typedefs -Werror")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-local-typedefs -Werror")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined")
Expand Down Expand Up @@ -252,7 +253,9 @@ if (USE_CTC)
endif (USE_CTC)
if (USE_ROS)
set(ENV{ROS_LANG_DISABLE} "genlisp:gennodejs:geneus:$ENV{ROS_LANG_DISABLE}")
find_package(catkin2 COMPONENTS roscpp message_generation std_msgs geometry_msgs sensor_msgs cv_bridge image_transport tf2 tf2_ros rosbag nodelet)
find_package(catkin2 COMPONENTS roscpp message_generation std_msgs geometry_msgs sensor_msgs cv_bridge image_transport tf tf2 tf2_ros rosbag nodelet)
find_package(PCL REQUIRED COMPONENTS common)
find_package(Octomap MODULE REQUIRED)
#pkg_check_modules(OROCOS_KDL REQUIRED orocos_kdl)
if (USE_CTC)
set(OROCOS_KDL_LIBRARIES ${ARM_CHROOT_DIR}/opt/ros/kinetic/lib/liborocos-kdl.so)
Expand Down Expand Up @@ -322,7 +325,7 @@ if (USE_ROS)
endif (NOT USE_CTC AND ENABLE_GAZEBO)
add_subdirectory(gnc)
add_subdirectory(mobility)
add_subdirectory(procedures)
add_subdirectory(behaviors)
add_subdirectory(management)
endif (USE_ROS)

Expand Down
2 changes: 1 addition & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ After this command has completed, you should be able to run a simulator from any
directory in your Linux filesystem. So, for example, to start a simulation of a
single Astrobee in the ISS, run the following:

roslaunch astrobee sim.launch dds:=false rviz:=true
roslaunch astrobee sim.launch dds:=false robot:=sim_pub rviz:=true

- Note 1: The very first time Gazebo starts, it could take a long time because
it loads some large models
Expand Down
20 changes: 20 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Astrobee Robot Software v1

## Release 0.3.0

This release addresses several bugs identified by Guest Scientists, simulator improvements as well as many internal changes.
The only API change is in the EkfState (removed augmented state).

### Simulator
- Stability improvements
- Better performance by optimized collision checking and new method for feature simulation
- More detailed CAD models and textures

### Mobility
- New mapper node builds an Octomap from the HazCam data
- Collision checking performed at runtime agains the Octomap
- Docking and undocking complete

### Limitations
- Angular velocities/acceleration in GDS not consistent with FSW (will be fixed in GDS)
- Keep in and keep out zones are not checked (during validation or execution)
- Simulated docking in a beta stage and should not be used

## Release 0.2.0

### Simulator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ require "context"
parameters = {
{
id = "tol_pan", reconfigurable = true, type = "double",
default = 1, min = 0.1, max = 10, unit = "degrees",
default = 5.0, min = 0.1, max = 10, unit = "degrees",
description = "Tolerance for reaching pan goal"
},{
id = "tol_tilt", reconfigurable = true, type = "double",
default = 1, min = 0.1, max = 10, unit = "degrees",
default = 5.0, min = 0.1, max = 10, unit = "degrees",
description = "Tolerance for reaching tilt goal"
},{
id = "tol_gripper", reconfigurable = true, type = "double",
default = 1, min = 0.1, max = 10, unit = "percentage",
default = 5.0, min = 0.1, max = 10, unit = "degrees",
description = "Tolerance for reaching gripper goals"
},{
id = "timeout_watchdog", reconfigurable = false, type = "double",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ parameters = {
description = "Time by which the control action must be connected to"
},{
id = "timeout_motion_active", reconfigurable = false, type = "double",
default = 1.0, min = 0.1, max = 10, unit = "seconds",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which a control goal must go active"
},{
id = "timeout_motion_response", reconfigurable = false, type = "double",
default = 1.0, min = 0.1, max = 10, unit = "seconds",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which control feedback/response must be received"
},{
id = "timeout_switch_connected", reconfigurable = false, type = "double",
Expand All @@ -62,21 +62,13 @@ parameters = {
id = "timeout_switch_deadline", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which validate response must be received"
},{
id = "delta_approach", reconfigurable = false, type = "double",
default = 0.5, min = 0.2, max = 1.0, unit = "meters",
description = "The distance between the berth frame and approach pose"
},{
id = "delta_complete", reconfigurable = false, type = "double",
default = -0.10, min = -0.05, max = 0.05, unit = "meters",
description = "The distance between the berth frame and complete pose"
},{
id = "delta_attached", reconfigurable = false, type = "double",
default = 0.10, min = 0, max = 1.0, unit = "meters",
description = "The distance between the berth frame and attached pose"
},{
id = "detection_tolerance", reconfigurable = false, type = "double",
default = 0.10, min = 0.01, max = 0.2, unit = "meters",
description = "The distance we should be from the berth"
default = 0.30, min = 0.01, max = 0.2, unit = "meters",
description = "Distance used to detect closest berth to current position"
},{
id = "initial_tolerance", reconfigurable = false, type = "double",
default = 1.0, min = 0.01, max = 0.2, unit = "meters",
description = "The distance we should be from the approach point to begin"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,37 +20,26 @@ require "geometry"

-- Declare the variables above as reconfigurable
parameters = {
-- SERVICE CLIENT TIMEOUT VALUES

-- MOTION

{
id = "timeout_enable_connected", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Plan action timeout"
-- ACTION CLIENT TIMEOUT VALUES
},{
id = "timeout_motion_connected", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which the motion action must be connected to"
description = "Time by which the control action must be connected to"
},{
id = "timeout_motion_active", reconfigurable = false, type = "double",
default = 1.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which a motion goal must go active"
description = "Time by which a control goal must go active"
},{
id = "timeout_motion_response", reconfigurable = false, type = "double",
default = 1.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which motion feedback/response must be received"
},{
id = "timeout_arm_connected", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which the arm action must be connected to"
},{
id = "timeout_arm_active", reconfigurable = false, type = "double",
default = 1.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which a arm goal must go active"
},{
id = "timeout_arm_response", reconfigurable = false, type = "double",
default = 1.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which arm feedback/response must be received"
},{
description = "Time by which control feedback/response must be received"
},

-- SWITCH

{
id = "timeout_switch_connected", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which the validate action must be connected to"
Expand All @@ -62,18 +51,21 @@ parameters = {
id = "timeout_switch_response", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which validate feedback/response must be received"
},{
id = "timeout_switch_deadline", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which validate response must be received"
}
}

-- The "approach" pose (20cm in front of handrail)
approach_pose = transform(vec3(0.20000, 0, 0), quat4(0.0, 0.0, 0.0, 1.0));
-- ARM

-- The "complete" pose (2cm behind handrail)
complete_pose = transform(vec3(-0.0200, 0, 0), quat4(0.0, 0.0, 0.0, 1.0));

-- The "attach" pose (2cm in front of handrail)
attached_pose = transform(vec3(0.02000, 0, 0), quat4(0.0, 0.0, 0.0, 1.0));
{
id = "timeout_arm_connected", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which the validate action must be connected to"
},{
id = "timeout_arm_active", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which a validate goal must go active"
},{
id = "timeout_arm_response", reconfigurable = false, type = "double",
default = 10.0, min = 0.1, max = 10, unit = "seconds",
description = "Time by which validate feedback/response must be received"
}
}
40 changes: 25 additions & 15 deletions astrobee/config/commands.config
Original file line number Diff line number Diff line change
@@ -1,19 +1,7 @@
-- Copyright (c) 2017, United States Government, as represented by the

-- Copyright (c) 2015 United States Government as represented by the
-- Administrator of the National Aeronautics and Space Administration.
--
-- All rights reserved.
--
-- The Astrobee platform is licensed under the Apache License, Version 2.0
-- (the "License"); you may not use this file except in compliance with the
-- License. You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-- License for the specific language governing permissions and limitations
-- under the License.
-- All Rights Reserved.

commandConfig = {
availableSubsystemTypes={
Expand Down Expand Up @@ -237,6 +225,10 @@ commandConfig = {
name="perch",
parameters={}
},
{
name="prepare",
parameters={}
},
{
name="simpleMove6DOF",
parameters={
Expand Down Expand Up @@ -415,6 +407,15 @@ commandConfig = {
}
}
},
{
name="setEnableImmediate",
parameters={
{
key="enableImmediate",
type="RAPID_BOOL"
}
}
},
{
name="setFlashlightBrightness",
parameters={
Expand Down Expand Up @@ -500,6 +501,15 @@ commandConfig = {
}
}
},
{
name="setTimeSync",
parameters={
{
key="setTimeSync",
type="RAPID_BOOL"
}
}
},
{
name="setZones",
parameters={}
Expand Down
3 changes: 3 additions & 0 deletions astrobee/config/common_lua.config
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,9 @@ function vec3(_x,_y,_z)
end

function quat4(_x,_y,_z,_w)
if math.abs(math.sqrt(_x*_x + _y*_y + _z*_z + _w*_w) - 1.0) > 1e-3 then
error("Quaternion is not normalized.")
end
return {x=_x,y=_y,z=_z,w=_w}
end

Expand Down
12 changes: 8 additions & 4 deletions astrobee/config/communications/dds_ros_bridge.config
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ pub_topic_RAJSRAJS = ""
use_RARMRARM = true
pub_topic_RARMRARM = ""

-- ros_battery_state_rapid_battery_state => RBSRBS --
use_RBSRBS = true
pub_topic_RBSRBS = ""

-- ros_command_config_rapid_command_config => RCCRCC -
use_RCCRCC = true
pub_topic_RCCRCC = ""
Expand All @@ -80,14 +84,14 @@ pub_topic_RCNCIRI = "-Navigation"
use_RCSRCS = true
pub_topic_RCSRCS = ""

-- ros_data_to_disk_rapid_data_to_disk => RDTDRDTD --
use_RDTDRDTD = true
pub_topic_RDTDRDTD = ""

-- ros_disk_state_rapid_disk_state => RDSRDS --
use_RDSRDS = true
pub_topic_RDSRDS = ""

-- ros_battery_state_rapid_battery_state => RBSRBS --
use_RBSRBS = true
pub_topic_RBSRBS = ""

-- ros_fault_config_rapid_fault_config => RFCRFC --
use_RFCRFC = true
pub_topic_RFCRFC = ""
Expand Down
Loading

0 comments on commit e7cd5c3

Please sign in to comment.