Skip to content

Commit

Permalink
Merge pull request #486 from nasa/develop
Browse files Browse the repository at this point in the history
Release 0.16.4
  • Loading branch information
marinagmoreira authored May 9, 2022
2 parents 177e836 + c335c8b commit ca97763
Show file tree
Hide file tree
Showing 48 changed files with 2,029 additions and 70 deletions.
7 changes: 7 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Releases

## Release 0.16.4

* Auto-exposure
* Add splice tool
* Add arm deploy to bridge
* Various bug fixes

## Release 0.16.3

* Added bag tools
Expand Down
2 changes: 1 addition & 1 deletion astrobee.doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ PROJECT_NAME = "NASA Astrobee Robot Software"
# control system is used.


PROJECT_NUMBER = 0.16.3
PROJECT_NUMBER = 0.16.4

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 1 addition & 1 deletion astrobee/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 0.16.3)
set(ASTROBEE_VERSION 0.16.4)

## Compile as C++14, supported in ROS Kinetic and newer
add_compile_options(-std=c++14)
Expand Down
12 changes: 12 additions & 0 deletions astrobee/commands/freeFlyerPlanSchema.json
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,18 @@
"params": []
},

{
"type": "CommandSpec",
"id": "Arm.deployArm",
"isRapidNative": false,
"notes": "Deploys arm. The motion sequence is:<ol><li>Pan to 0</li><li>Tilt to 0</li></ol><p/>See also Arm.armPanAndTilt for more discussion of the arm.",
"availableContexts": [
"teleop"
],
"parent": "Command",
"params":[]
},

{
"type": "CommandSpec",
"id": "Arm.stowArm",
Expand Down
31 changes: 20 additions & 11 deletions astrobee/config/cameras.config
Original file line number Diff line number Diff line change
Expand Up @@ -34,25 +34,27 @@ nav_cam = {
device = "/dev/nav_cam",
gain = robot_camera_calibrations.nav_cam.gain,
exposure = robot_camera_calibrations.nav_cam.exposure,
auto_exposure = false,
calibration_gain = 105,
calibration_exposure = 30,
bayer_enable = false,
bayer_enable = false,
bayer_throttle_ratio = 3
};

dock_cam = {
width=1280,
height=960,
undistorted_width=3000,
undistorted_height=1800,
distortion_coeff=robot_camera_calibrations.dock_cam.distortion_coeff,
intrinsic_matrix=robot_camera_calibrations.dock_cam.intrinsic_matrix,
device="/dev/dock_cam",
gain= robot_camera_calibrations.dock_cam.gain,
exposure= robot_camera_calibrations.dock_cam.exposure,
width = 1280,
height = 960,
undistorted_width = 3000,
undistorted_height = 1800,
distortion_coeff = robot_camera_calibrations.dock_cam.distortion_coeff,
intrinsic_matrix = robot_camera_calibrations.dock_cam.intrinsic_matrix,
device = "/dev/dock_cam",
gain = robot_camera_calibrations.dock_cam.gain,
exposure = robot_camera_calibrations.dock_cam.exposure,
auto_exposure = false,
calibration_gain = 105,
calibration_exposure = 30,
bayer_enable = false,
bayer_enable = false,
bayer_throttle_ratio = 3
};

Expand Down Expand Up @@ -101,6 +103,13 @@ sci_cam = {
nav_cam_to_haz_cam_timestamp_offset = robot_camera_calibrations.nav_cam_to_haz_cam_timestamp_offset;
nav_cam_to_sci_cam_timestamp_offset = robot_camera_calibrations.nav_cam_to_sci_cam_timestamp_offset;

-- Auto-exposure parameters
desired_msv = 2.5; -- should be 2.5 as histogram size is 5
k_p = 25.0; -- proportional gain
k_i = 8.0; -- integral gain
max_i = 100.0; -- maximum i
tolerance = 0.2; -- msv tolerance to minimize exposure reconfigure

-----------------------------------------------------
-- PicoFlexx cameras support the following modes
-----------------------------------------------------
Expand Down
4 changes: 4 additions & 0 deletions astrobee/config/commands.config
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,10 @@ commandConfig = {
}
}
},
{
name="deployArm",
parameters={}
},
{
name="gripperControl",
parameters={
Expand Down
61 changes: 61 additions & 0 deletions astrobee/config/communications/ground_dds_ros_bridge.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
-- Copyright (c) 2017, 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.

-- param for each bridge component use the following params --
-- ABREV = First Letters of Component Ex: ros_string_rapid_text_msg = RSRTM --
-- use_ABREV bool: turn this component on? --
-- sub_topic_ABREV string: [RAPID: subscribe topic suffix] --
-- pub_topic_ABREV string: [RAPID: publish topic suffix] --
-- queue_size_ABREV int: queue size --

-- Robot we are receiving data from
connecting_robot = "Bumble"

-- Domain id, needs to be 23 for space
domain_id = 37

-- If the namespace needs to be the connecting robot name, please set to true
use_namespace = false

-- rapid_access_control_state_ros_access_control_state => RACSRACS
use_RACSRACS = true
sub_topic_RACSRACS = ""

-- rapid_guest_science_data_ros_guest_science_data => RGSDRGSD
use_RGSDRGSD = true
sub_topic_RGSDRGSD = ""

-- rapid_image_ros_compressed_dock_cam_image => RIRCDCI
use_RIRCDCI = true
sub_topic_RIRCDCI = "-Dock"

-- rapid_image_ros_compressed_nav_cam_image => RIRCNCI
use_RIRCNCI = true
sub_topic_RIRCNCI = "-Navigation"

-- rapid_image_ros_compressed_sci_cam_image => RIRCSCI
use_RIRCSCI = true
sub_topic_RIRCSCI = "-Science"

-- rapid_position_ros_odom => RPRO --
use_RPRO = true
sub_topic_RPRO = ""

-- ros_command_rapid_command => RCRC
use_RCRC = true
pub_topic_RCRC = ""

3 changes: 3 additions & 0 deletions communications/dds_msgs/idl/AstrobeeCommandConstants.idl
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ module rapid {
const rapid::String32 ARM_METHOD_ARM_PAN_AND_TILT_PARAM_WHICH = "which";
const rapid::DataType ARM_METHOD_ARM_PAN_AND_TILT_DTYPE_WHICH = rapid::RAPID_STRING;

//@copy-declaration /** Deploys arm. The motion sequence is:<ol><li>Pan to 0</li><li>Tilt to 0</li></ol><p/>See also Arm.armPanAndTilt for more discussion of the arm. */
const rapid::String32 ARM_METHOD_DEPLOY_ARM = "deployArm";

//@copy-declaration /** Opens or closes gripper.<p/>Astrobee's arm has a passively under-actuated gripper with a single motor. Opening the gripper commands the motor to pull on a pair of tendons that open the fingers. Closing the gripper cuts power to the motor; the fingers are spring-loaded to close. The first time the gripper opens, it calibrates the motor encoder position by fully opening until the fingers contact a hard stop, then relaxes slightly to its nominal open position. On later open cycles, it opens directly to the nominal open position. Note that the motor consumes significant power holding the gripper open, so it should be closed when not actively in use. Holding it open for extended periods (minutes) runs the risk of triggering a motor overtemperature fault, which disables the motor. */
const rapid::String32 ARM_METHOD_GRIPPER_CONTROL = "gripperControl";

Expand Down
1 change: 1 addition & 0 deletions communications/ff_msgs/msg/CommandConstants.msg
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ string CMD_NAME_UNTERMINATE = unterminate
string CMD_NAME_WAKE = wake
string CMD_NAME_WAKE_SAFE = wakeSafe
string CMD_NAME_ARM_PAN_AND_TILT = armPanAndTilt
string CMD_NAME_DEPLOY_ARM = deployArm
string CMD_NAME_GRIPPER_CONTROL = gripperControl
string CMD_NAME_STOP_ARM = stopArm
string CMD_NAME_STOW_ARM = stowArm
Expand Down
115 changes: 115 additions & 0 deletions communications/ground_dds_ros_bridge/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Copyright (c) 2017, 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.

cmake_minimum_required(VERSION 3.0)
project(ground_dds_ros_bridge)

## Compile as C++14, supported in ROS Kinetic and newer
add_compile_options(-std=c++14)

if (USE_DDS)
## Find catkin macros and libraries
find_package(catkin2 REQUIRED COMPONENTS
nodelet
config_reader
ff_util
ff_msgs
ff_hw_msgs
dds_msgs
)

# System dependencies are found with CMake's conventions
find_package(Eigen3 REQUIRED)
find_package(Boost 1.54.0 QUIET REQUIRED COMPONENTS filesystem system iostreams
thread program_options timer)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/../../cmake")

if (USE_CTC)
set(SORACORE_ROOT_DIR ${ARM_CHROOT_DIR}/usr)
else (USE_CTC)
set(SORACORE_ROOT_DIR /usr)
endif (USE_CTC)

set(MIRO_ROOT_DIR ${SORACORE_ROOT_DIR})

SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

# find Qt version according to OS
find_program(LSB_RELEASE_EXEC lsb_release)
execute_process(COMMAND "${LSB_RELEASE_EXEC}" --short --release OUTPUT_VARIABLE LSB_RELEASE_VERSION_SHORT OUTPUT_STRIP_TRAILING_WHITESPACE)

if (${LSB_RELEASE_VERSION_SHORT} VERSION_GREATER 18.04)
find_package(Qt5Xml REQUIRED)
else ()
find_package(Qt4 4.6.0 REQUIRED QtXml)
endif ()

find_package(Miro REQUIRED)
find_package(RtiDds REQUIRED)
find_package(Soracore REQUIRED)

catkin_package(
LIBRARIES ground_dds_ros_bridge
CATKIN_DEPENDS roscpp message_runtime std_msgs ff_msgs dds_msgs
)

###########
## Build ##
###########

# Specify additional locations of header files
include_directories(
include
${catkin_INCLUDE_DIRS}
${EIGEN3_INCLUDE_DIRS}
${RTIDDS_INCLUDE_DIR}
${SORACORE_INCLUDE_DIRS}
${MIRO_INCLUDE_DIR}
${QT_INCLUDE_DIR}
${QT_INCLUDE_DIR}/Qt
${Boost_INCLUDE_DIRS}
)

file(GLOB cc_files
"src/*.cc"
)

# Declare C++ libraries
add_library(ground_dds_ros_bridge
${cc_files}
)
target_compile_definitions(ground_dds_ros_bridge PUBLIC ${RTIDDS_DEFINE_FLAGS})
add_dependencies(ground_dds_ros_bridge ${catkin_EXPORTED_TARGETS})
if (${LSB_RELEASE_VERSION_SHORT} VERSION_GREATER 18.04)
target_link_libraries(ground_dds_ros_bridge rapidIo Qt5::Xml ${Boost_LIBRARIES} ${catkin_LIBRARIES})
else ()
target_link_libraries(ground_dds_ros_bridge rapidIo ${Boost_LIBRARIES} ${catkin_LIBRARIES})
endif ()

# Declare a C++ executable
add_executable(ground_dds_ros_bridge_node
tools/ground_dds_ros_bridge_node.cc
)
add_dependencies(ground_dds_ros_bridge_node ${catkin_EXPORTED_TARGETS})
target_link_libraries(ground_dds_ros_bridge_node ground_dds_ros_bridge ${catkin_LIBRARIES})

else (USE_DDS)
find_package(catkin REQUIRED COMPONENTS)
catkin_package()
endif (USE_DDS)
Loading

0 comments on commit ca97763

Please sign in to comment.