From 24b6c756da986ae36e0add4d12d3a65c71696e55 Mon Sep 17 00:00:00 2001 From: wangzheqie Date: Fri, 23 Apr 2021 18:42:07 +0800 Subject: [PATCH] add example --- ranger_base/CMakeLists.txt | 2 +- ranger_examples/CMakeLists.txt | 5 ++- ranger_examples/src/change_the_mode.cpp | 39 ++++++++++++++++++++++ ranger_examples/src/control_the_car.cpp | 44 +++++++++++++++++++++++++ 4 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 ranger_examples/src/change_the_mode.cpp create mode 100644 ranger_examples/src/control_the_car.cpp diff --git a/ranger_base/CMakeLists.txt b/ranger_base/CMakeLists.txt index 9824a35..1b1a1a9 100644 --- a/ranger_base/CMakeLists.txt +++ b/ranger_base/CMakeLists.txt @@ -114,7 +114,7 @@ find_package(catkin REQUIRED COMPONENTS ## CATKIN_DEPENDS: catkin_packages dependent projects also need ## DEPENDS: system dependencies of this project that dependent projects also need catkin_package( -# INCLUDE_DIRS include + INCLUDE_DIRS include # LIBRARIES ranger_base # CATKIN_DEPENDS controller_manager geometry_msgs ranger_msgs roscpp roslaunch sensor_msgs topic_tools ugv_sdk # DEPENDS system_lib diff --git a/ranger_examples/CMakeLists.txt b/ranger_examples/CMakeLists.txt index 3f65d3b..dfb1067 100644 --- a/ranger_examples/CMakeLists.txt +++ b/ranger_examples/CMakeLists.txt @@ -139,7 +139,10 @@ include_directories( ## Declare a C++ executable ## With catkin_make all packages are built within a single CMake context ## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/ranger_examples_node.cpp) +add_executable(change_the_mode src/change_the_mode.cpp) +target_link_libraries(change_the_mode ${catkin_LIBRARIES}) +add_executable(control_the_car src/control_the_car.cpp) +target_link_libraries(control_the_car ${catkin_LIBRARIES}) ## Rename C++ executable without prefix ## The above recommended prefix causes long target names, the following renames the diff --git a/ranger_examples/src/change_the_mode.cpp b/ranger_examples/src/change_the_mode.cpp new file mode 100644 index 0000000..cfe3c25 --- /dev/null +++ b/ranger_examples/src/change_the_mode.cpp @@ -0,0 +1,39 @@ +/** + * @Kit : Qt-Creator: Desktop + * @Author : Wang Zhe + * @Date : 2021-04-23 18:20:58 + * @FileName : change_the_mode.cpp + * @Mail : zhe.wang@agilex.ai + * Copyright : AgileX Robotics (2021) + **/ +#include + +#include +#include + +#include "ranger_base/ranger_messenger.hpp" +#include "ugv_sdk/ranger_base.hpp" + +using namespace westonrobot; + +std::shared_ptr robot; + +int main(int argc, char *argv[]) { + // setup ROS node + ros::init(argc, argv, "change_the_mode"); + ros::NodeHandle node(""), private_node("~"); + + // instantiate a robot object + robot = std::make_shared(); + + robot->Connect("can0"); + robot->EnableCommandedMode(); + + // publish robot state at 50Hz while listening to twist commands + ros::Rate rate(50); + while (ros::ok()) { + ros::spinOnce(); + rate.sleep(); + } + return 0; +} diff --git a/ranger_examples/src/control_the_car.cpp b/ranger_examples/src/control_the_car.cpp new file mode 100644 index 0000000..cbd7875 --- /dev/null +++ b/ranger_examples/src/control_the_car.cpp @@ -0,0 +1,44 @@ +/** + * @Kit : Qt-Creator: Desktop + * @Author : Wang Zhe + * @Date : 2021-04-23 18:20:37 + * @FileName : control_the_car.cpp + * @Mail : zhe.wang@agilex.ai + * Copyright : AgileX Robotics (2021) + **/ + +#include + +#include +#include + +#include "ranger_base/ranger_messenger.hpp" +#include "ugv_sdk/ranger_base.hpp" + +using namespace westonrobot; + +std::shared_ptr robot; + + +int main(int argc, char *argv[]) { + // setup ROS node + ros::init(argc, argv, "control_the_car"); + ros::NodeHandle node(""), private_node("~"); + + // instantiate a robot object + robot = std::make_shared(); + + robot->Connect("can0"); + robot->EnableCommandedMode(); + + + + + // publish robot state at 50Hz while listening to twist commands + ros::Rate rate(50); + while (ros::ok()) { + ros::spinOnce(); + rate.sleep(); + } + return 0; +}