diff --git a/CMakeLists.txt b/CMakeLists.txt index db01460..570b796 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,8 +164,7 @@ target_link_libraries( endif() -if(APOLLO) -if(KIA_SOUL_EV) +if(APOLLO AND (KIA_SOUL_EV OR KIA_NIRO)) find_package(catkin REQUIRED COMPONENTS @@ -188,7 +187,6 @@ add_library( link_directories( /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/canbus/ /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/control/ - /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/localization/ /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/common/proto /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/drivers/canbus/common/ /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/drivers/canbus/proto/ @@ -202,6 +200,7 @@ add_executable( target_include_directories( ${PROJECT_NAME}_apollo PUBLIC include + oscc/api/include ) add_dependencies( @@ -217,13 +216,10 @@ target_link_libraries( ${PROJECT_NAME}_pid_control /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/canbus/proto/libcanbus_proto_lib.a /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/control/proto/libcontrol_proto_lib.a - /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/localization/proto/liblocalization_proto_lib.a - /apollo/bazel-apollo/bazel-out/local-dbg/bin/modules/localization/proto/libpose_proto_lib.a canbus_proto_lib protobuf canbus_lib control_lib - localization_lib canbus_common vehicle_signal_proto_lib pnc_point_proto_lib @@ -235,7 +231,6 @@ target_link_libraries( vehicle_state_proto_lib ) -endif() endif() ############# diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8083ff4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM ubuntu:16.04 + +WORKDIR /app + +# common packages +RUN apt-get update && \ + apt-get install -y \ + build-essential cmake git wget && \ + rm -rf /var/lib/apt/lists/* + +# add ROS packages to apt package manager +RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/ros-latest.list' + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 + +# install ros +RUN apt-get update && \ + apt-get install -y ros-kinetic-ros-base + +# install arduino toolchain +RUN wget -nv http://arduino.cc/download.php?f=/arduino-1.8.5-linux64.tar.xz -O arduino-1.8.5.tar.xz + +RUN tar -xf arduino-1.8.5.tar.xz && \ + cd arduino-1.8.5 && \ + mkdir -p /usr/share/arduino && \ + cp -R * /usr/share/arduino diff --git a/Jenkinsfile b/Jenkinsfile index b3322bf..b5d2c3b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,43 +1,66 @@ #!groovy -node('xenial') { - try { - stage('Checkout') { - sh 'mkdir -p catkin_ws/src/roscco' - dir('catkin_ws/src/roscco') - { - checkout([ - $class: 'GitSCM', - branches: scm.branches, - doGenerateSubmoduleConfigurations: false, - extensions: scm.extensions + [[$class: 'CleanBeforeCheckout'], - [$class: 'SubmoduleOption', - disableSubmodules: false, - parentCredentials: true, - recursiveSubmodules: true, - reference: '', - trackingSubmodules: false]], - submoduleCfg: [], - userRemoteConfigs: scm.userRemoteConfigs - ]) - } + +node() { + def builds = [:] + def platforms = [:] + + sh 'mkdir -p catkin_ws/src/roscco' + dir('catkin_ws/src/roscco') { + checkout scm + sh "git submodule update --init --recursive" + + def image = docker.build("catkin_make-build:${env.BUILD_ID}") + + + def output = image.inside { + sh returnStdout: true, script: "cmake -LA ./oscc/firmware | grep 'VEHICLE_VALUES' | cut -d'=' -f 2" + } + + platforms = output.trim().tokenize(';')\ } - stage('Build') { - parallel 'kia soul firmware': { - sh '. /opt/ros/kinetic/setup.sh && cd catkin_ws && catkin_make -DKIA_SOUL=ON' - } - echo 'Build Complete!' + + for(int j=0; j #include #include -#include #include #include #include +#include #define THROTTLE_RATIO 0.393 -#define EV_BRAKE_RATIO 0.118 -#define PETROL_BRAKE_RATIO 0.056 #define STEERING_RATIO 0.018 -#define EV_SPEED_RATIO 0.003 -#define PETROL_SPEED_RATIO 0.02 +#if defined( KIA_SOUL_EV ) + #define BRAKE_RATIO 0.12 + #define SPEED_RATIO 0.002 +#elif defined( KIA_NIRO ) + #define BRAKE_RATIO 0.033 + #define SPEED_RATIO 0.3 +#endif class RosccoApollo { @@ -57,14 +60,7 @@ class RosccoApollo * * @param roscco can frame message to be consumed */ - void EVCanFrameCallback( const roscco::CanFrame& input ); - - /** - * @brief Callback function to log localization - * - * @param apollo localization message to be consumed - */ - void localizationCallback( const apollo::localization::LocalizationEstimate& input ); + void canFrameCallback( const roscco::CanFrame& input ); ros::NodeHandle nh; diff --git a/oscc b/oscc index 2a2f112..60ac713 160000 --- a/oscc +++ b/oscc @@ -1 +1 @@ -Subproject commit 2a2f1122e620dfe0767206a2ea81ea8a7ca42552 +Subproject commit 60ac71346e671fdf4fba9c979ad3d372809ef5c7 diff --git a/test/test_oscc_to_ros.cpp b/test/test_oscc_to_ros.cpp index aaa7b74..9b04316 100644 --- a/test/test_oscc_to_ros.cpp +++ b/test/test_oscc_to_ros.cpp @@ -7,7 +7,7 @@ #include // Time to allow ROS to process callbacks and publish a message -const double SLEEP_TIME = 0.02; +const double SLEEP_TIME = 0.05; template class MessageHelper