diff --git a/patch/dependencies.yaml b/patch/dependencies.yaml index 450ba24b..f8174aec 100644 --- a/patch/dependencies.yaml +++ b/patch/dependencies.yaml @@ -304,6 +304,10 @@ mujoco_ros2_control_plugins: add_host: - if: linux then: ["libegl-devel"] +roboplan_example_models: + # src/resources.cpp uses dladdr() from dlfcn.h, which is POSIX-only. + # On Windows we need to depend on dlfcn-win32 instead. + add_host: ["${{ 'dlfcn-win32' if win }}"] roboplan_ros_examples: add_host: ["ros-rolling-ament-cmake"] yasmin_pcl: diff --git a/patch/ros-rolling-ouster-ros.patch b/patch/ros-rolling-ouster-ros.patch index d19c0c86..15df640b 100644 --- a/patch/ros-rolling-ouster-ros.patch +++ b/patch/ros-rolling-ouster-ros.patch @@ -156,10 +156,10 @@ index 7867e3a..6994f3d 100644 namespace sdk { namespace core { diff --git a/ouster-sdk/ouster_client/src/logging.cpp b/ouster-sdk/ouster_client/src/logging.cpp -index bf0fc72..09f5077 100644 +index bf0fc72..eed53e6 100644 --- a/ouster-sdk/ouster_client/src/logging.cpp +++ b/ouster-sdk/ouster_client/src/logging.cpp -@@ -1,6 +1,6 @@ +@@ -1,10 +1,11 @@ #include "ouster/impl/logging.h" -#include @@ -167,6 +167,11 @@ index bf0fc72..09f5077 100644 #include #include #include + #include ++#include + #include + + #include diff --git a/src/os_static_transforms_broadcaster.h b/src/os_static_transforms_broadcaster.h index 94d50eb..b1e05ce 100644 --- a/src/os_static_transforms_broadcaster.h diff --git a/patch/ros-rolling-rmf-traffic.patch b/patch/ros-rolling-rmf-traffic.patch index 0281cbd2..ac089fe5 100644 --- a/patch/ros-rolling-rmf-traffic.patch +++ b/patch/ros-rolling-rmf-traffic.patch @@ -1,8 +1,19 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index ad05ac1..b677893 100644 +index ad05ac1..08822fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -97,6 +97,7 @@ endif() +@@ -28,6 +28,10 @@ if(fcl_FOUND) + message(STATUS "Using installed FCL version: ${FCL_VERSION}") + else() + message(STATUS "Using in-source FCL") ++ # RoboStack: rmf_traffic never uses FCL octrees, and leaving this ON lets a ++ # system-wide octomap (e.g. liboctomap-dev on Debian/Ubuntu) leak into the ++ # conda build, which then fails to find . ++ set(FCL_WITH_OCTOMAP OFF CACHE BOOL "OctoMap library support" FORCE) + add_subdirectory(thirdparty/fcl) + endif() + # TODO(MXG): Remove everything related to maintaining compatibility with 0.5, +@@ -97,6 +101,7 @@ endif() target_link_libraries(rmf_traffic PUBLIC rmf_utils::rmf_utils @@ -10,6 +21,114 @@ index ad05ac1..b677893 100644 Threads::Threads PRIVATE ${FCL_LIBRARIES} +diff --git a/include/rmf_traffic/DetectConflict.hpp b/include/rmf_traffic/DetectConflict.hpp +index e0aa706..64f0d61 100644 +--- a/include/rmf_traffic/DetectConflict.hpp ++++ b/include/rmf_traffic/DetectConflict.hpp +@@ -18,6 +18,7 @@ + #ifndef RMF_TRAFFIC__DETECTCONFLICT_HPP + #define RMF_TRAFFIC__DETECTCONFLICT_HPP + ++#include + #include + #include + #include +diff --git a/include/rmf_traffic/Route.hpp b/include/rmf_traffic/Route.hpp +index c3825ed..840aa84 100644 +--- a/include/rmf_traffic/Route.hpp ++++ b/include/rmf_traffic/Route.hpp +@@ -18,6 +18,7 @@ + #ifndef RMF_TRAFFIC__ROUTE_HPP + #define RMF_TRAFFIC__ROUTE_HPP + ++#include + #include + + #include +diff --git a/include/rmf_traffic/agv/VehicleTraits.hpp b/include/rmf_traffic/agv/VehicleTraits.hpp +index 416ee30..325e902 100644 +--- a/include/rmf_traffic/agv/VehicleTraits.hpp ++++ b/include/rmf_traffic/agv/VehicleTraits.hpp +@@ -18,6 +18,7 @@ + #ifndef RMF_TRAFFIC__AGV__VEHICLETRAITS_HPP + #define RMF_TRAFFIC__AGV__VEHICLETRAITS_HPP + ++#include + #include + #include + +diff --git a/include/rmf_traffic/schedule/Change.hpp b/include/rmf_traffic/schedule/Change.hpp +index bca4c5d..2328183 100644 +--- a/include/rmf_traffic/schedule/Change.hpp ++++ b/include/rmf_traffic/schedule/Change.hpp +@@ -18,6 +18,7 @@ + #ifndef RMF_TRAFFIC__SCHEDULE__CHANGE_HPP + #define RMF_TRAFFIC__SCHEDULE__CHANGE_HPP + ++#include + #include + #include + #include +diff --git a/include/rmf_traffic/schedule/Itinerary.hpp b/include/rmf_traffic/schedule/Itinerary.hpp +index eb6a0ab..fbf25e9 100644 +--- a/include/rmf_traffic/schedule/Itinerary.hpp ++++ b/include/rmf_traffic/schedule/Itinerary.hpp +@@ -18,6 +18,7 @@ + #ifndef RMF_TRAFFIC__SCHEDULE__ITINERARY_HPP + #define RMF_TRAFFIC__SCHEDULE__ITINERARY_HPP + ++#include + #include + #include + +diff --git a/include/rmf_traffic/schedule/ParticipantDescription.hpp b/include/rmf_traffic/schedule/ParticipantDescription.hpp +index 74d272c..3ce72cd 100644 +--- a/include/rmf_traffic/schedule/ParticipantDescription.hpp ++++ b/include/rmf_traffic/schedule/ParticipantDescription.hpp +@@ -18,6 +18,7 @@ + #ifndef RMF_TRAFFIC__SCHEDULE__PARTICIPANTDESCRIPTION_HPP + #define RMF_TRAFFIC__SCHEDULE__PARTICIPANTDESCRIPTION_HPP + ++#include + #include + #include + +diff --git a/include/rmf_traffic/schedule/Query.hpp b/include/rmf_traffic/schedule/Query.hpp +index aa6d3ab..bb3a924 100644 +--- a/include/rmf_traffic/schedule/Query.hpp ++++ b/include/rmf_traffic/schedule/Query.hpp +@@ -18,6 +18,7 @@ + #ifndef RMF_TRAFFIC__SCHEDULE__QUERY_HPP + #define RMF_TRAFFIC__SCHEDULE__QUERY_HPP + ++#include + #include + + #include +diff --git a/include/rmf_traffic/schedule/Writer.hpp b/include/rmf_traffic/schedule/Writer.hpp +index f536114..473b2db 100644 +--- a/include/rmf_traffic/schedule/Writer.hpp ++++ b/include/rmf_traffic/schedule/Writer.hpp +@@ -18,6 +18,7 @@ + #ifndef RMF_TRAFFIC__SCHEDULE__WRITER_HPP + #define RMF_TRAFFIC__SCHEDULE__WRITER_HPP + ++#include + #include + #include + +diff --git a/src/rmf_traffic/Route.cpp b/src/rmf_traffic/Route.cpp +index debd648..de68354 100644 +--- a/src/rmf_traffic/Route.cpp ++++ b/src/rmf_traffic/Route.cpp +@@ -15,6 +15,7 @@ + * + */ + ++#include + #include "internal_Route.hpp" + + #include diff --git a/src/rmf_traffic/blockade/geometry.cpp b/src/rmf_traffic/blockade/geometry.cpp index 049351e..d69a999 100644 --- a/src/rmf_traffic/blockade/geometry.cpp @@ -22,6 +141,51 @@ index 049351e..d69a999 100644 #include namespace rmf_traffic { +diff --git a/src/rmf_traffic/internal_Route.hpp b/src/rmf_traffic/internal_Route.hpp +index 8bb220b..112ed34 100644 +--- a/src/rmf_traffic/internal_Route.hpp ++++ b/src/rmf_traffic/internal_Route.hpp +@@ -18,6 +18,7 @@ + #ifndef SRC__RMF_TRAFFIC__INTERNAL_ROUTE_HPP + #define SRC__RMF_TRAFFIC__INTERNAL_ROUTE_HPP + ++#include + #include + + namespace rmf_traffic { +diff --git a/src/rmf_traffic/schedule/Timeline.hpp b/src/rmf_traffic/schedule/Timeline.hpp +index b190242..94f9719 100644 +--- a/src/rmf_traffic/schedule/Timeline.hpp ++++ b/src/rmf_traffic/schedule/Timeline.hpp +@@ -18,6 +18,7 @@ + #ifndef SRC__RMF_TRAFFIC__SCHEDULE__TIMELINE_HPP + #define SRC__RMF_TRAFFIC__SCHEDULE__TIMELINE_HPP + ++#include + #include "../DetectConflictInternal.hpp" + + #include +diff --git a/thirdparty/fcl/CMakeLists.txt b/thirdparty/fcl/CMakeLists.txt +index 3d76235..5e49560 100644 +--- a/thirdparty/fcl/CMakeLists.txt ++++ b/thirdparty/fcl/CMakeLists.txt +@@ -156,11 +156,14 @@ set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON) + # + # If Eigen3 is not found, manually set the cache variable EIGEN3_INCLUDE_DIR + #=============================================================================== +-find_package(Eigen3 3.0.5 QUIET CONFIG) ++# RoboStack: do not pin a minimum version here. Eigen >= 5 ships a ++# SameMajorVersion config-version file, so requesting 3.0.5 rejects the conda ++# Eigen and silently falls back to a system-wide Eigen 3.x if one exists. ++find_package(Eigen3 QUIET CONFIG) + + # If Eigen3Config.cmake is not found, use the FindEigen3.cmake module + if(NOT Eigen3_FOUND) +- find_package(Eigen3 3.0.5 QUIET MODULE) ++ find_package(Eigen3 QUIET MODULE) + set(Eigen3_FOUND ON) + endif() + diff --git a/thirdparty/fcl/include/fcl/broadphase/default_broadphase_callbacks.h b/thirdparty/fcl/include/fcl/broadphase/default_broadphase_callbacks.h index 1c9b4fe..76f3bde 100644 --- a/thirdparty/fcl/include/fcl/broadphase/default_broadphase_callbacks.h @@ -154,135 +318,3 @@ index 115b710..7011975 100644 #include "fcl/narrowphase/distance.h" #include "fcl/narrowphase/collision.h" -diff --git a/include/rmf_traffic/DetectConflict.hpp b/include/rmf_traffic/DetectConflict.hpp -index e0aa706..64f0d61 100644 ---- a/include/rmf_traffic/DetectConflict.hpp -+++ b/include/rmf_traffic/DetectConflict.hpp -@@ -18,6 +18,7 @@ - #ifndef RMF_TRAFFIC__DETECTCONFLICT_HPP - #define RMF_TRAFFIC__DETECTCONFLICT_HPP - -+#include - #include - #include - #include -diff --git a/include/rmf_traffic/Route.hpp b/include/rmf_traffic/Route.hpp -index c3825ed..840aa84 100644 ---- a/include/rmf_traffic/Route.hpp -+++ b/include/rmf_traffic/Route.hpp -@@ -18,6 +18,7 @@ - #ifndef RMF_TRAFFIC__ROUTE_HPP - #define RMF_TRAFFIC__ROUTE_HPP - -+#include - #include - - #include -diff --git a/include/rmf_traffic/agv/VehicleTraits.hpp b/include/rmf_traffic/agv/VehicleTraits.hpp -index 416ee30..325e902 100644 ---- a/include/rmf_traffic/agv/VehicleTraits.hpp -+++ b/include/rmf_traffic/agv/VehicleTraits.hpp -@@ -18,6 +18,7 @@ - #ifndef RMF_TRAFFIC__AGV__VEHICLETRAITS_HPP - #define RMF_TRAFFIC__AGV__VEHICLETRAITS_HPP - -+#include - #include - #include - -diff --git a/include/rmf_traffic/schedule/Change.hpp b/include/rmf_traffic/schedule/Change.hpp -index bca4c5d..2328183 100644 ---- a/include/rmf_traffic/schedule/Change.hpp -+++ b/include/rmf_traffic/schedule/Change.hpp -@@ -18,6 +18,7 @@ - #ifndef RMF_TRAFFIC__SCHEDULE__CHANGE_HPP - #define RMF_TRAFFIC__SCHEDULE__CHANGE_HPP - -+#include - #include - #include - #include -diff --git a/include/rmf_traffic/schedule/Itinerary.hpp b/include/rmf_traffic/schedule/Itinerary.hpp -index eb6a0ab..fbf25e9 100644 ---- a/include/rmf_traffic/schedule/Itinerary.hpp -+++ b/include/rmf_traffic/schedule/Itinerary.hpp -@@ -18,6 +18,7 @@ - #ifndef RMF_TRAFFIC__SCHEDULE__ITINERARY_HPP - #define RMF_TRAFFIC__SCHEDULE__ITINERARY_HPP - -+#include - #include - #include - -diff --git a/include/rmf_traffic/schedule/ParticipantDescription.hpp b/include/rmf_traffic/schedule/ParticipantDescription.hpp -index 74d272c..3ce72cd 100644 ---- a/include/rmf_traffic/schedule/ParticipantDescription.hpp -+++ b/include/rmf_traffic/schedule/ParticipantDescription.hpp -@@ -18,6 +18,7 @@ - #ifndef RMF_TRAFFIC__SCHEDULE__PARTICIPANTDESCRIPTION_HPP - #define RMF_TRAFFIC__SCHEDULE__PARTICIPANTDESCRIPTION_HPP - -+#include - #include - #include - -diff --git a/include/rmf_traffic/schedule/Query.hpp b/include/rmf_traffic/schedule/Query.hpp -index aa6d3ab..bb3a924 100644 ---- a/include/rmf_traffic/schedule/Query.hpp -+++ b/include/rmf_traffic/schedule/Query.hpp -@@ -18,6 +18,7 @@ - #ifndef RMF_TRAFFIC__SCHEDULE__QUERY_HPP - #define RMF_TRAFFIC__SCHEDULE__QUERY_HPP - -+#include - #include - - #include -diff --git a/include/rmf_traffic/schedule/Writer.hpp b/include/rmf_traffic/schedule/Writer.hpp -index f536114..473b2db 100644 ---- a/include/rmf_traffic/schedule/Writer.hpp -+++ b/include/rmf_traffic/schedule/Writer.hpp -@@ -18,6 +18,7 @@ - #ifndef RMF_TRAFFIC__SCHEDULE__WRITER_HPP - #define RMF_TRAFFIC__SCHEDULE__WRITER_HPP - -+#include - #include - #include - -diff --git a/src/rmf_traffic/Route.cpp b/src/rmf_traffic/Route.cpp -index debd648..de68354 100644 ---- a/src/rmf_traffic/Route.cpp -+++ b/src/rmf_traffic/Route.cpp -@@ -15,6 +15,7 @@ - * - */ - -+#include - #include "internal_Route.hpp" - - #include -diff --git a/src/rmf_traffic/internal_Route.hpp b/src/rmf_traffic/internal_Route.hpp -index 8bb220b..112ed34 100644 ---- a/src/rmf_traffic/internal_Route.hpp -+++ b/src/rmf_traffic/internal_Route.hpp -@@ -18,6 +18,7 @@ - #ifndef SRC__RMF_TRAFFIC__INTERNAL_ROUTE_HPP - #define SRC__RMF_TRAFFIC__INTERNAL_ROUTE_HPP - -+#include - #include - - namespace rmf_traffic { -diff --git a/src/rmf_traffic/schedule/Timeline.hpp b/src/rmf_traffic/schedule/Timeline.hpp -index b190242..94f9719 100644 ---- a/src/rmf_traffic/schedule/Timeline.hpp -+++ b/src/rmf_traffic/schedule/Timeline.hpp -@@ -18,6 +18,7 @@ - #ifndef SRC__RMF_TRAFFIC__SCHEDULE__TIMELINE_HPP - #define SRC__RMF_TRAFFIC__SCHEDULE__TIMELINE_HPP - -+#include - #include "../DetectConflictInternal.hpp" - - #include diff --git a/patch/ros-rolling-urg-c.patch b/patch/ros-rolling-urg-c.patch index a032f0c7..8aab1afa 100644 --- a/patch/ros-rolling-urg-c.patch +++ b/patch/ros-rolling-urg-c.patch @@ -21,23 +21,23 @@ index f11a6b3..934daed 100644 + // センサに対して接続を行う。 ret = urg_open(&urg, URG_SERIAL, connect_device, connect_baudrate); - // \todo check error code -+ // ¥todo check error code ++ // \todo check error code - // f[^M̂߂̗̈mۂ + // データ受信のための領域を確保する length_data = (long *)malloc(sizeof(long) * urg_max_data_size(&urg)); - // \todo check length_data is not NULL -+ // ¥todo check length_data is not NULL ++ // \todo check length_data is not NULL - // ZT狗f[^擾B + // センサから距離データを取得する。 ret = urg_start_measurement(&urg, URG_DISTANCE, 1, 0); - // \todo check error code -+ // ¥todo check error code ++ // \todo check error code length_data_size = urg_get_distance(&urg, length_data, NULL); - // \todo process length_data array -+ // ¥todo process length_data array ++ // \todo process length_data array - // ZTƂ̐ڑ‚B + // センサとの接続を閉じる。 @@ -62,7 +62,7 @@ index 706fdc6..64c3910 100644 +// センサに対して接続を行う。 ret = urg_open(&urg, URG_ETHERNET, connect_address, connect_port); -// \todo check error code -+// ¥todo check error code ++// \todo check error code return 0; } diff --git a/current/dox/convert_xy.c b/current/dox/convert_xy.c @@ -88,14 +88,14 @@ index 7fc90da..4a8252c 100644 radian = urg_index2rad(&urg, i); length = length_data[i]; - // \todo check length is valid -+ // ¥todo check length is valid ++ // \todo check length is valid x = (long)(length * cos(radian)); y = (long)(length * sin(radian)); printf("(%ld, %ld), ", x, y); } -printf("\n"); -+printf("¥n"); ++printf("\n"); return 0; } diff --git a/current/dox/get_scans.c b/current/dox/get_scans.c @@ -122,12 +122,12 @@ index 4ce7c71..bed6a54 100644 +// センサから距離データを取得する。 ret = urg_start_measurement(&urg, URG_DISTANCE, scan_times, 0); -// \todo check error code -+// ¥todo check error code ++// \todo check error code for (i = 0; i < scan_times; ++i) { length_data_size = urg_get_distance(&urg, length_data, NULL); - // \todo process length_data array -+ // ¥todo process length_data array ++ // \todo process length_data array } return 0; } @@ -154,17 +154,17 @@ index 17039b5..5c6ff92 100644 +// センサから距離データを取得する。 ret = urg_start_measurement(&urg, URG_DISTANCE, scan_times, 0); -// \todo check error code -+// ¥todo check error code ++// \todo check error code for (i = 0; i < scan_times; ++i) { length_data_size = urg_get_distance(&urg, length_data, ×tamp); - // \todo process length_data array -+ // ¥todo process length_data array ++ // \todo process length_data array - // 擾^CX^vo͂ - printf("%ld\n", timestamp); + // 取得したタイムスタンプを出力する -+ printf("%ld¥n", timestamp); ++ printf("%ld\n", timestamp); } return 0; } @@ -185,7 +185,7 @@ index 88e43cb..f3c9671 100644 +// 接続を行うと、計測パラメータの設定は初期化される ret = urg_open(&urg, URG_SERIAL, connect_device, connect_baudrate); -// \todo check error code -+// ¥todo check error code ++// \todo check error code -// v͈͂w肷 -// ZTʕ 90 [deg] ͈͂̃f[^擾sAXebvԈsȂ @@ -196,7 +196,7 @@ index 88e43cb..f3c9671 100644 skip_step = 0; ret = urg_set_scanning_parameter(&urg, first_step, last_step, skip_step); -// \todo check error code -+// ¥todo check error code ++// \todo check error code -// v񐔂ƌv̊Ԉw肵āAvJn -// 123 ̌vwAXL̊ԈsȂ @@ -206,7 +206,7 @@ index 88e43cb..f3c9671 100644 skip_scan = 0; ret = urg_start_measurement(&urg, URG_DISTANCE, scan_times, skip_scan); -// \todo check error code -+// ¥todo check error code ++// \todo check error code return 0; } diff --git a/current/include/urg_c/urg_connection.h b/current/include/urg_c/urg_connection.h @@ -219,11 +219,11 @@ index 865c6e9..59661f6 100644 /*! - \file - \brief ʐM̏ -+ ¥file -+ ¥brief 通信の処理 ++ \file ++ \brief 通信の処理 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_connection.h,v 1d233c7a2240 2011/02/19 03:08:45 Satofumi $ */ @@ -232,7 +232,7 @@ index 865c6e9..59661f6 100644 /*! - \brief 萔` -+ ¥brief 定数定義 ++ \brief 定数定義 */ enum { - URG_CONNECTION_TIMEOUT = -1, //!< ^CAEgƂ̖߂l @@ -242,7 +242,7 @@ index 865c6e9..59661f6 100644 /*! - \brief ʐM^Cv -+ ¥brief 通信タイプ ++ \brief 通信タイプ */ typedef enum { - URG_SERIAL, //!< VA, USB ڑ @@ -254,7 +254,7 @@ index 865c6e9..59661f6 100644 /*! - \brief ʐM\[X -+ ¥brief 通信リソース ++ \brief 通信リソース */ typedef struct { @@ -269,7 +269,7 @@ index 865c6e9..59661f6 100644 /*! - \brief ڑ -+ ¥brief 接続 ++ \brief 接続 - w肳ꂽfoCXɐڑB + 指定されたデバイスに接続する。 @@ -278,15 +278,15 @@ index 865c6e9..59661f6 100644 - \param[in] connection_type ڑ^Cv - \param[in] device ڑ - \param[in] baudrate_or_port {[[g / |[gԍ -+ ¥param[in,out] connection 通信リソース -+ ¥param[in] connection_type 接続タイプ -+ ¥param[in] device 接続名 -+ ¥param[in] baudrate_or_port ボーレート / ポート番号 ++ \param[in,out] connection 通信リソース ++ \param[in] connection_type 接続タイプ ++ \param[in] device 接続名 ++ \param[in] baudrate_or_port ボーレート / ポート番号 - \retval 0 - \retval <0 G[ -+ ¥retval 0 正常 -+ ¥retval <0 エラー ++ \retval 0 正常 ++ \retval <0 エラー - connection_type ɂ + connection_type には @@ -306,27 +306,27 @@ index 865c6e9..59661f6 100644 Example - \code -+ ¥code ++ \code connection_t connection; if (! connection_open(&connection, URG_SERIAL, "COM1", 115200)) { return 1; - } \endcode -+ } ¥endcode ++ } \endcode - ܂AC[T[lbgʐM̏ꍇ͈ȉ̂悤ɂȂB + また、イーサーネット通信の場合は以下のようになる。 Example - \code -+ ¥code ++ \code connection_t connection; if (! connection_open(&connection, URG_ETHERNET, "192.168.0.10", 10940)) { return 1; - } \endcode -+ } ¥endcode ++ } \endcode - \see connection_close() -+ ¥see connection_close() ++ \see connection_close() */ extern int connection_open(urg_connection_t *connection, urg_connection_type_t connection_type, @@ -335,21 +335,21 @@ index 865c6e9..59661f6 100644 /*! - \brief ؒf -+ ¥brief 切断 ++ \brief 切断 - foCXƂ̐ڑؒfB + デバイスとの接続を切断する。 - \param[in,out] connection ʐM\[X -+ ¥param[in,out] connection 通信リソース ++ \param[in,out] connection 通信リソース - \code - connection_close(&connection); \endcode -+ ¥code -+ connection_close(&connection); ¥endcode ++ \code ++ connection_close(&connection); \endcode - \see connection_open() -+ ¥see connection_open() ++ \see connection_open() */ extern void connection_close(urg_connection_t *connection); @@ -361,7 +361,7 @@ index 865c6e9..59661f6 100644 /*! - \brief M -+ ¥brief 送信 ++ \brief 送信 - f[^𑗐MB + データを送信する。 @@ -369,23 +369,23 @@ index 865c6e9..59661f6 100644 - \param[in,out] connection ʐM\[X - \param[in] data Mf[^ - \param[in] size MoCg -+ ¥param[in,out] connection 通信リソース -+ ¥param[in] data 送信データ -+ ¥param[in] size 送信バイト数 ++ \param[in,out] connection 通信リソース ++ \param[in] data 送信データ ++ \param[in] size 送信バイト数 - \retval >=0 Mf[^ - \retval <0 G[ -+ ¥retval >=0 送信データ数 -+ ¥retval <0 エラー ++ \retval >=0 送信データ数 ++ \retval <0 エラー Example - \code - n = connection_write(&connection, "QT\n", 3); \endcode -+ ¥code -+ n = connection_write(&connection, "QT¥n", 3); ¥endcode ++ \code ++ n = connection_write(&connection, "QT\n", 3); \endcode - \see connection_read(), connection_readline() -+ ¥see connection_read(), connection_readline() ++ \see connection_read(), connection_readline() */ extern int connection_write(urg_connection_t *connection, const char *data, int size); @@ -393,7 +393,7 @@ index 865c6e9..59661f6 100644 /*! - \brief M -+ ¥brief 受信 ++ \brief 受信 - f[^MB + データを受信する。 @@ -402,15 +402,15 @@ index 865c6e9..59661f6 100644 - \param[in] data Mf[^i[obt@ - \param[in] max_size Mf[^i[łoCg - \param[in] timeout ^CAEg [msec] -+ ¥param[in,out] connection 通信リソース -+ ¥param[in] data 受信データを格納するバッファ -+ ¥param[in] max_size 受信データを格納できるバイト数 -+ ¥param[in] timeout タイムアウト時間 [msec] ++ \param[in,out] connection 通信リソース ++ \param[in] data 受信データを格納するバッファ ++ \param[in] max_size 受信データを格納できるバイト数 ++ \param[in] timeout タイムアウト時間 [msec] - \retval >=0 Mf[^ - \retval <0 G[ -+ ¥retval >=0 受信データ数 -+ ¥retval <0 エラー ++ \retval >=0 受信データ数 ++ \retval <0 エラー - timeout ɕ̒lw肵ꍇA^CAEg͔ȂB + timeout に負の値を指定した場合、タイムアウトは発生しない。 @@ -420,17 +420,17 @@ index 865c6e9..59661f6 100644 Example - \code -+ ¥code ++ \code enum { BUFFER_SIZE = 256, TIMEOUT_MSEC = 1000, }; char buffer[BUFFER_SIZE]; -n = connection_read(&connection, buffer, BUFFER_SIZE, TIMEOUT_MSEC); \endcode -+n = connection_read(&connection, buffer, BUFFER_SIZE, TIMEOUT_MSEC); ¥endcode ++n = connection_read(&connection, buffer, BUFFER_SIZE, TIMEOUT_MSEC); \endcode - \see connection_write(), connection_readline() -+ ¥see connection_write(), connection_readline() ++ \see connection_write(), connection_readline() */ extern int connection_read(urg_connection_t *connection, char *data, int max_size, int timeout); @@ -438,7 +438,7 @@ index 865c6e9..59661f6 100644 /*! - \brief s܂ł̎M -+ ¥brief 改行文字までの受信 ++ \brief 改行文字までの受信 - s܂ł̃f[^MB + 改行文字までのデータを受信する。 @@ -447,27 +447,27 @@ index 865c6e9..59661f6 100644 - \param[in] data Mf[^i[obt@ - \param[in] max_size Mf[^i[łoCg - \param[in] timeout ^CAEg [msec] -+ ¥param[in,out] connection 通信リソース -+ ¥param[in] data 受信データを格納するバッファ -+ ¥param[in] max_size 受信データを格納できるバイト数 -+ ¥param[in] timeout タイムアウト時間 [msec] ++ \param[in,out] connection 通信リソース ++ \param[in] data 受信データを格納するバッファ ++ \param[in] max_size 受信データを格納できるバイト数 ++ \param[in] timeout タイムアウト時間 [msec] - \retval >=0 Mf[^ - \retval <0 G[ -+ ¥retval >=0 受信データ数 -+ ¥retval <0 エラー ++ \retval >=0 受信データ数 ++ \retval <0 エラー - data ɂ́A'\\0' I[ꂽ max_size zȂoCgi[B ‚܂AMł镶̃oCǵAő max_size - 1 ƂȂB -+ data には、'¥¥0' 終端された文字列が max_size を越えないバイト数だけ格納される。 つまり、受信できる文字のバイト数は、最大で max_size - 1 となる。 ++ data には、'\\0' 終端された文字列が max_size を越えないバイト数だけ格納される。 つまり、受信できる文字のバイト数は、最大で max_size - 1 となる。 - s '\\r' ܂ '\\n' ƂB -+ 改行文字は '¥¥r' または '¥¥n' とする。 ++ 改行文字は '\\r' または '\\n' とする。 - Mŏ̕s̏ꍇ́A0 ԂA1 MȂƂ #URG_CONNECTION_TIMEOUT ԂB + 受信した最初の文字が改行の場合は、0 を返し、1 文字も受信しなかったときは #URG_CONNECTION_TIMEOUT を返す。 - \see connection_write(), connection_read() -+ ¥see connection_write(), connection_read() ++ \see connection_write(), connection_read() */ extern int connection_readline(urg_connection_t *connection, char *data, int max_size, int timeout); @@ -481,21 +481,21 @@ index 0b79b8e..984dc1d 100644 /*! - \file - \brief URG debugging functions -+ ¥file -+ ¥brief URG debugging functions ++ \file ++ \brief URG debugging functions - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA - \~japanese - \attention gKv͂܂B -+ ¥‾japanese -+ ¥attention 使う必要はありません。 ++ \~japanese ++ \attention 使う必要はありません。 - \~english - \attention Don't need to use these functions. -+ ¥‾english -+ ¥attention Don't need to use these functions. ++ \~english ++ \attention Don't need to use these functions. $Id$ */ @@ -504,17 +504,17 @@ index 0b79b8e..984dc1d 100644 - /*! \~japanese ZTɃf[^𒼐ڑM */ -+ /*! ¥‾japanese センサにデータを直接送信する */ ++ /*! \~japanese センサにデータを直接送信する */ extern int urg_raw_write(urg_t *urg, const char *data, int data_size); - /*! \~japanese ZTf[^𒼐ڎM */ -+ /*! ¥‾japanese センサからデータを直接受信する */ ++ /*! \~japanese センサからデータを直接受信する */ extern int urg_raw_read(urg_t *urg, char *data, int max_data_size, int timeout); - /*! \~japanese ZTs܂ł̃f[^𒼐ڎM */ -+ /*! ¥‾japanese センサから改行までのデータを直接受信する */ ++ /*! \~japanese センサから改行までのデータを直接受信する */ extern int urg_raw_readline(urg_t *urg,char *data, int max_data_size, int timeout); @@ -528,11 +528,11 @@ index ab5b6fb..a873788 100644 /*! - \file - \brief OS ̌o -+ ¥file -+ ¥brief OS の検出 ++ \file ++ \brief OS の検出 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_detect_os.h,v 0caa22c18f6b 2010/12/30 03:36:32 Satofumi $ */ @@ -555,11 +555,11 @@ index 08cac7d..0c13eaa 100644 /*! - \file - \brief URG CũG[` -+ ¥file -+ ¥brief URG ライブラリのエラー定義 ++ \file ++ \brief URG ライブラリのエラー定義 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -573,11 +573,11 @@ index dfe8d77..ee4d319 100644 /*! - \file - \brief Oobt@ -+ ¥file -+ ¥brief リングバッファ ++ \file ++ \brief リングバッファ - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -600,14 +600,14 @@ index dfe8d77..ee4d319 100644 /*! - \brief -+ ¥brief 初期化 ++ \brief 初期化 - \param[in] ring Oobt@̍\ - \param[in] buffer 蓖Ăobt@ - \param[in] shift_length obt@TCY 2 ̏搔 -+ ¥param[in] ring リングバッファの構造体 -+ ¥param[in] buffer 割り当てるバッファ -+ ¥param[in] shift_length バッファサイズの 2 の乗数 ++ \param[in] ring リングバッファの構造体 ++ \param[in] buffer 割り当てるバッファ ++ \param[in] shift_length バッファサイズの 2 の乗数 */ extern void ring_initialize(ring_buffer_t *ring, char *buffer, const int shift_length); @@ -615,64 +615,64 @@ index dfe8d77..ee4d319 100644 /*! - \brief Oobt@̃NA -+ ¥brief リングバッファのクリア ++ \brief リングバッファのクリア - \param[in] ring Oobt@̍\ -+ ¥param[in] ring リングバッファの構造体 ++ \param[in] ring リングバッファの構造体 */ extern void ring_clear(ring_buffer_t *ring); /*! - \brief i[f[^Ԃ -+ ¥brief 格納データ数を返す ++ \brief 格納データ数を返す - \param[in] ring Oobt@̍\ -+ ¥param[in] ring リングバッファの構造体 ++ \param[in] ring リングバッファの構造体 */ extern int ring_size(const ring_buffer_t *ring); /*! - \brief ő̊i[f[^Ԃ -+ ¥brief 最大の格納データ数を返す ++ \brief 最大の格納データ数を返す - \param[in] ring Oobt@̍\ -+ ¥param[in] ring リングバッファの構造体 ++ \param[in] ring リングバッファの構造体 */ extern int ring_capacity(const ring_buffer_t *ring); /*! - \brief f[^̊i[ -+ ¥brief データの格納 ++ \brief データの格納 - \param[in] ring Oobt@̍\ - \param[in] data f[^ - \param[in] size f[^TCY -+ ¥param[in] ring リングバッファの構造体 -+ ¥param[in] data データ -+ ¥param[in] size データサイズ ++ \param[in] ring リングバッファの構造体 ++ \param[in] data データ ++ \param[in] size データサイズ - \return i[f[^ -+ ¥return 格納したデータ数 ++ \return 格納したデータ数 */ extern int ring_write(ring_buffer_t *ring, const char *data, int size); /*! - \brief f[^̎o -+ ¥brief データの取り出し ++ \brief データの取り出し - \param[in] ring Oobt@̍\ - \param[out] buffer f[^ - \param[in] size ő̃f[^TCY -+ ¥param[in] ring リングバッファの構造体 -+ ¥param[out] buffer データ -+ ¥param[in] size 最大のデータサイズ ++ \param[in] ring リングバッファの構造体 ++ \param[out] buffer データ ++ \param[in] size 最大のデータサイズ - \return of[^ -+ ¥return 取り出したデータ数 ++ \return 取り出したデータ数 */ extern int ring_read(ring_buffer_t *ring, char *buffer, int size); @@ -687,9 +687,9 @@ index 018d932..4c7d3e0 100644 - \file - \~japanese - \brief URG ZT -+ ¥file -+ ¥‾japanese -+ ¥brief URG センサ制御 ++ \file ++ \~japanese ++ \brief URG センサ制御 - URG p̊{IȊ֐񋟂܂B + URG 用の基本的な関数を提供します。 @@ -697,16 +697,16 @@ index 018d932..4c7d3e0 100644 - \~english - \brief URG sensor -+ ¥‾english -+ ¥brief URG sensor ++ \~english ++ \brief URG sensor - URG p̊{IȊ֐񋟂܂B + URG 用の基本的な関数を提供します。 - \~ - \author Satofumi KAMIMURA -+ ¥‾ -+ ¥author Satofumi KAMIMURA ++ \~ ++ \author Satofumi KAMIMURA $Id: urg_sensor.h,v 540bc11f70c8 2011/05/08 23:04:49 satofumi $ */ @@ -716,8 +716,8 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief v^Cv -+ ¥‾japanese -+ ¥brief 計測タイプ ++ \~japanese ++ \brief 計測タイプ */ typedef enum { - URG_DISTANCE, /*!< \~japanese */ @@ -726,38 +726,38 @@ index 018d932..4c7d3e0 100644 - URG_MULTIECHO_INTENSITY, /*!< \~japanese }`GR[( + x) */ - URG_STOP, /*!< \~japanese v̒~ */ - URG_UNKNOWN, /*!< \~japanese s */ -+ URG_DISTANCE, /*!< ¥‾japanese 距離 */ -+ URG_DISTANCE_INTENSITY, /*!< ¥‾japanese 距離 + 強度 */ -+ URG_MULTIECHO, /*!< ¥‾japanese マルチエコーの距離 */ -+ URG_MULTIECHO_INTENSITY, /*!< ¥‾japanese マルチエコーの(距離 + 強度) */ -+ URG_STOP, /*!< ¥‾japanese 計測の停止 */ -+ URG_UNKNOWN, /*!< ¥‾japanese 不明 */ ++ URG_DISTANCE, /*!< \~japanese 距離 */ ++ URG_DISTANCE_INTENSITY, /*!< \~japanese 距離 + 強度 */ ++ URG_MULTIECHO, /*!< \~japanese マルチエコーの距離 */ ++ URG_MULTIECHO_INTENSITY, /*!< \~japanese マルチエコーの(距離 + 強度) */ ++ URG_STOP, /*!< \~japanese 計測の停止 */ ++ URG_UNKNOWN, /*!< \~japanese 不明 */ } urg_measurement_type_t; /*! - \~japanese - \brief byte ŕ\邩̎w -+ ¥‾japanese -+ ¥brief 距離を何 byte で表現するかの指定 ++ \~japanese ++ \brief 距離を何 byte で表現するかの指定 */ typedef enum { - URG_COMMUNICATION_3_BYTE, /*!< \~japanese 3 byte ŕ\ */ - URG_COMMUNICATION_2_BYTE, /*!< \~japanese 2 byte ŕ\ */ -+ URG_COMMUNICATION_3_BYTE, /*!< ¥‾japanese 距離を 3 byte で表現する */ -+ URG_COMMUNICATION_2_BYTE, /*!< ¥‾japanese 距離を 2 byte で表現する */ ++ URG_COMMUNICATION_3_BYTE, /*!< \~japanese 距離を 3 byte で表現する */ ++ URG_COMMUNICATION_2_BYTE, /*!< \~japanese 距離を 2 byte で表現する */ } urg_range_data_byte_t; enum { - URG_SCAN_INFINITY = 0, /*!< \~japanese ̃f[^擾 */ - URG_MAX_ECHO = 3, /*!< \~japanese }`GR[̍őGR[ */ -+ URG_SCAN_INFINITY = 0, /*!< ¥‾japanese 無限回のデータ取得 */ -+ URG_MAX_ECHO = 3, /*!< ¥‾japanese マルチエコーの最大エコー数 */ ++ URG_SCAN_INFINITY = 0, /*!< \~japanese 無限回のデータ取得 */ ++ URG_MAX_ECHO = 3, /*!< \~japanese マルチエコーの最大エコー数 */ }; - /*! \~japanese G[nh \~english error handler */ -+ /*! ¥‾japanese エラーハンドラ ¥‾english error handler */ ++ /*! \~japanese エラーハンドラ \~english error handler */ typedef urg_measurement_type_t (*urg_error_handler)(const char *status, void *urg); @@ -765,13 +765,13 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief URG ZTǗ -+ ¥‾japanese -+ ¥brief URG センサ管理 ++ \~japanese ++ \brief URG センサ管理 - \~english - \brief URG sensor -+ ¥‾english -+ ¥brief URG sensor ++ \~english ++ \brief URG sensor */ typedef struct { @@ -781,8 +781,8 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief ڑ -+ ¥‾japanese -+ ¥brief 接続 ++ \~japanese ++ \brief 接続 - w肵foCXɐڑAvł悤ɂB + 指定したデバイスに接続し、距離を計測できるようにする。 @@ -791,15 +791,15 @@ index 018d932..4c7d3e0 100644 - \param[in] connection_type ʐM^Cv - \param[in] device_or_address ڑfoCX - \param[in] baudrate_or_port ڑ{[[g [bps] / TCP/IP |[g -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[in] connection_type 通信タイプ -+ ¥param[in] device_or_address 接続デバイス名 -+ ¥param[in] baudrate_or_port 接続ボーレート [bps] / TCP/IP ポート ++ \param[in,out] urg URG センサ管理 ++ \param[in] connection_type 通信タイプ ++ \param[in] device_or_address 接続デバイス名 ++ \param[in] baudrate_or_port 接続ボーレート [bps] / TCP/IP ポート - \retval 0 - \retval <0 G[ -+ ¥retval 0 正常 -+ ¥retval <0 エラー ++ \retval 0 正常 ++ \retval <0 エラー - connection_type ɂ́Aȉ̍ڂwł܂B + connection_type には、以下の項目が指定できます。 @@ -814,7 +814,7 @@ index 018d932..4c7d3e0 100644 Example - \code -+ ¥code ++ \code urg_t urg; if (urg_open(&urg, URG_SERIAL, "/dev/ttyACM0", 115200) < 0) { @@ -823,15 +823,15 @@ index 018d932..4c7d3e0 100644 ... - urg_close(&urg); \endcode -+ urg_close(&urg); ¥endcode ++ urg_close(&urg); \endcode - \attention URG C Cȗ̊֐ĂяoOɁÅ֐ĂяoKv܂B -+ ¥attention URG C ライブラリの他の関数を呼び出す前に、この関数を呼び出す必要があります。 ++ \attention URG C ライブラリの他の関数を呼び出す前に、この関数を呼び出す必要があります。 - \~ - \see urg_close() -+ ¥‾ -+ ¥see urg_close() ++ \~ ++ \see urg_close() */ extern int urg_open(urg_t *urg, urg_connection_type_t connection_type, const char *device_or_address, @@ -841,60 +841,60 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief ؒf -+ ¥‾japanese -+ ¥brief 切断 ++ \~japanese ++ \brief 切断 - [UAURG Ƃ̐ڑؒf܂B + レーザを消灯し、URG との接続を切断します。 - \param[in,out] urg URG ZTǗ -+ ¥param[in,out] urg URG センサ管理 ++ \param[in,out] urg URG センサ管理 - \~ - \see urg_open() -+ ¥‾ -+ ¥see urg_open() ++ \~ ++ \see urg_open() */ extern void urg_close(urg_t *urg); /*! - \brief ^CAEgԂ̐ݒ -+ ¥brief タイムアウト時間の設定 ++ \brief タイムアウト時間の設定 - \param[in,out] urg URG ZTǗ - \param[in] msec ^CAEg鎞 [msec] -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[in] msec タイムアウトする時間 [msec] ++ \param[in,out] urg URG センサ管理 ++ \param[in] msec タイムアウトする時間 [msec] - \attention urg_open() Ăяo timeout ̐ݒl̓ftHglɏ邽߁Å֐ urg_open() ɌĂяoƁB -+ ¥attention urg_open() を呼び出すと timeout の設定値はデフォルト値に初期化されるため、この関数は urg_open() 後に呼び出すこと。 ++ \attention urg_open() を呼び出すと timeout の設定値はデフォルト値に初期化されるため、この関数は urg_open() 後に呼び出すこと。 */ extern void urg_set_timeout_msec(urg_t *urg, int msec); - /*! \~japanese ^CX^v[h̊Jn */ -+ /*! ¥‾japanese タイムスタンプモードの開始 */ ++ /*! \~japanese タイムスタンプモードの開始 */ extern int urg_start_time_stamp_mode(urg_t *urg); /*! - \~japanese - \brief ^CX^v̎擾 -+ ¥‾japanese -+ ¥brief タイムスタンプの取得 ++ \~japanese ++ \brief タイムスタンプの取得 - \param[in,out] urg URG ZTǗ -+ ¥param[in,out] urg URG センサ管理 ++ \param[in,out] urg URG センサ管理 - \retval >=0 ^CX^v [msec] - \retval <0 G[ -+ ¥retval >=0 タイムスタンプ [msec] -+ ¥retval <0 エラー ++ \retval >=0 タイムスタンプ [msec] ++ \retval <0 エラー Example - \code -+ ¥code ++ \code urg_start_time_stamp_mode(&urg); before_ticks = get_pc_msec_function(); @@ -906,24 +906,24 @@ index 018d932..4c7d3e0 100644 ... - urg_stop_time_stamp_mode(&urg); \endcode -+ urg_stop_time_stamp_mode(&urg); ¥endcode ++ urg_stop_time_stamp_mode(&urg); \endcode - ڂ \ref sync_time_stamp.c QƂĉB -+ 詳しくは ¥ref sync_time_stamp.c を参照して下さい。 ++ 詳しくは \ref sync_time_stamp.c を参照して下さい。 */ extern long urg_time_stamp(urg_t *urg); - /*! \~japanese ^CX^v[h̏I */ -+ /*! ¥‾japanese タイムスタンプモードの終了 */ ++ /*! \~japanese タイムスタンプモードの終了 */ extern int urg_stop_time_stamp_mode(urg_t *urg); /*! - \~japanese - \brief f[^̎擾Jn -+ ¥‾japanese -+ ¥brief 距離データの取得を開始 ++ \~japanese ++ \brief 距離データの取得を開始 - f[^̎擾Jn܂Bۂ̃f[^ urg_get_distance(), urg_get_distance_intensity(), urg_get_multiecho(), urg_get_multiecho_intensity() Ŏ擾ł܂B + 距離データの取得を開始します。実際のデータは urg_get_distance(), urg_get_distance_intensity(), urg_get_multiecho(), urg_get_multiecho_intensity() で取得できます。 @@ -932,15 +932,15 @@ index 018d932..4c7d3e0 100644 - \param[in] type f[^E^Cv - \param[in] scan_times f[^̎擾 - \param[in] skip_scan f[^̎擾Ԋu -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[in] type データ・タイプ -+ ¥param[in] scan_times データの取得回数 -+ ¥param[in] skip_scan データの取得間隔 ++ \param[in,out] urg URG センサ管理 ++ \param[in] type データ・タイプ ++ \param[in] scan_times データの取得回数 ++ \param[in] skip_scan データの取得間隔 - \retval 0 - \retval <0 G[ -+ ¥retval 0 正常 -+ ¥retval <0 エラー ++ \retval 0 正常 ++ \retval <0 エラー - type ɂ͎擾f[^̎ނw肵܂B + type には取得するデータの種類を指定します。 @@ -956,21 +956,21 @@ index 018d932..4c7d3e0 100644 - scan_times ͉̃f[^擾邩 0 ȏ̐Ŏw肵܂BA0 ܂ #URG_SCAN_INFINITY w肵ꍇ́Ãf[^擾܂B\n - Jnv𒆒fɂ urg_stop_measurement() g܂B -+ scan_times は何回のデータを取得するかを 0 以上の数で指定します。ただし、0 または #URG_SCAN_INFINITY を指定した場合は、無限回のデータを取得します。¥n ++ scan_times は何回のデータを取得するかを 0 以上の数で指定します。ただし、0 または #URG_SCAN_INFINITY を指定した場合は、無限回のデータを取得します。\n + 開始した計測を中断するには urg_stop_measurement() を使います。 - skip_scan ̓~[̉]̂AP̃XLɉXLȂw肵܂Bskip_scan Ɏwł͈͂ [0, 9] łB + skip_scan はミラーの回転数のうち、1回のスキャン後に何回スキャンしないかを指定します。skip_scan に指定できる範囲は [0, 9] です。 - \image html skip_scan_image.png ɂP񂾂v邩 -+ ¥image html skip_scan_image.png 何回に1回だけ計測するか ++ \image html skip_scan_image.png 何回に1回だけ計測するか - Ƃ΁A~[̂P] 100 [msec] ̃ZT skip_scan 1 w肵ꍇAf[^̎擾Ԋu 200 [msec] ɂȂ܂B + たとえば、ミラーの1回転が 100 [msec] のセンサで skip_scan に 1 を指定した場合、データの取得間隔は 200 [msec] になります。 Example - \code -+ ¥code ++ \code enum { CAPTURE_TIMES = 10 }; urg_start_measurement(&urg, URG_DISTANCE, CAPTURE_TIMES, 0); @@ -981,12 +981,12 @@ index 018d932..4c7d3e0 100644 + // 受信したデータの利用 ... - } \endcode -+ } ¥endcode ++ } \endcode - \~ - \see urg_get_distance(), urg_get_distance_intensity(), urg_get_multiecho(), urg_get_multiecho_intensity(), urg_stop_measurement() -+ ¥‾ -+ ¥see urg_get_distance(), urg_get_distance_intensity(), urg_get_multiecho(), urg_get_multiecho_intensity(), urg_stop_measurement() ++ \~ ++ \see urg_get_distance(), urg_get_distance_intensity(), urg_get_multiecho(), urg_get_multiecho_intensity(), urg_stop_measurement() */ extern int urg_start_measurement(urg_t *urg, urg_measurement_type_t type, int scan_times, int skip_scan); @@ -995,8 +995,8 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief f[^̎擾 -+ ¥‾japanese -+ ¥brief 距離データの取得 ++ \~japanese ++ \brief 距離データの取得 - ZT狗f[^擾܂BO urg_start_measurement() #URG_DISTANCE wŌĂяoĂKv܂B + センサから距離データを取得します。事前に urg_start_measurement() を #URG_DISTANCE 指定で呼び出しておく必要があります。 @@ -1004,14 +1004,14 @@ index 018d932..4c7d3e0 100644 - \param[in,out] urg URG ZTǗ - \param[out] data f[^ [mm] - \param[out] time_stamp ^CX^v [msec] -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[out] data 距離データ [mm] -+ ¥param[out] time_stamp タイムスタンプ [msec] ++ \param[in,out] urg URG センサ管理 ++ \param[out] data 距離データ [mm] ++ \param[out] time_stamp タイムスタンプ [msec] - \retval >=0 Mf[^ - \retval <0 G[ -+ ¥retval >=0 受信したデータ個数 -+ ¥retval <0 エラー ++ \retval >=0 受信したデータ個数 ++ \retval <0 エラー - data ɂ́AZT擾f[^i[܂Bdata ̓f[^i[̃TCYmۂĂKv܂Bdata Ɋi[f[^ urg_max_data_size() Ŏ擾ł܂B + data には、センサから取得した距離データが格納されます。data はデータを格納するのサイズを確保しておく必要があります。data に格納されるデータ数は urg_max_data_size() で取得できます。 @@ -1021,7 +1021,7 @@ index 018d932..4c7d3e0 100644 Example - \code -+ ¥code ++ \code long *data = (long*)malloc(urg_max_data_size(&urg) * sizeof(data[0])); ... @@ -1038,12 +1038,12 @@ index 018d932..4c7d3e0 100644 long time_stamp; urg_start_measurement(&urg, URG_DISTANCE, 1, 0); - n = urg_get_distance(&urg, data, &time_stamp); \endcode -+ n = urg_get_distance(&urg, data, &time_stamp); ¥endcode ++ n = urg_get_distance(&urg, data, &time_stamp); \endcode - \~ - \see urg_start_measurement(), urg_max_data_size() -+ ¥‾ -+ ¥see urg_start_measurement(), urg_max_data_size() ++ \~ ++ \see urg_start_measurement(), urg_max_data_size() */ extern int urg_get_distance(urg_t *urg, long data[], long *time_stamp, unsigned long long *system_time_stamp); @@ -1051,8 +1051,8 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief Ƌxf[^̎擾 -+ ¥‾japanese -+ ¥brief 距離と強度データの取得 ++ \~japanese ++ \brief 距離と強度データの取得 - urg_get_distance() ɉAxf[^̎擾ł֐łBO urg_start_measurement() #URG_DISTANCE_INTENSITY wŌĂяoĂKv܂B + urg_get_distance() に加え、強度データの取得ができる関数です。事前に urg_start_measurement() を #URG_DISTANCE_INTENSITY 指定で呼び出しておく必要があります。 @@ -1061,15 +1061,15 @@ index 018d932..4c7d3e0 100644 - \param[out] data f[^ [mm] - \param[out] intensity xf[^ - \param[out] time_stamp ^CX^v [msec] -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[out] data 距離データ [mm] -+ ¥param[out] intensity 強度データ -+ ¥param[out] time_stamp タイムスタンプ [msec] ++ \param[in,out] urg URG センサ管理 ++ \param[out] data 距離データ [mm] ++ \param[out] intensity 強度データ ++ \param[out] time_stamp タイムスタンプ [msec] - \retval >=0 Mf[^ - \retval <0 G[ -+ ¥retval >=0 受信したデータ個数 -+ ¥retval <0 エラー ++ \retval >=0 受信したデータ個数 ++ \retval <0 エラー - xf[^Ƃ́AvZɎgg`̔ˋxłAZT̃V[YɓقȂ܂B xf[^gƂŁÂ̔˗‹̑܂ȔZW𐄑ł܂B + 強度データとは、距離計算に使った波形の反射強度であり、センサのシリーズ毎に特性が異なります。 強度データを使うことで、物体の反射率や環境の大まかな濃淡を推測できます。 @@ -1081,10 +1081,10 @@ index 018d932..4c7d3e0 100644 + intensity には、センサから取得した強度データが格納されます。intensity はデータを格納するのサイズを確保しておく必要があります。intensity に格納されるデータ数は urg_max_data_size() で取得できます。 - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code int data_size = urg_max_data_size(&urg); long *data = malloc(data_size * sizeof(long)); long *intensity = malloc(data_size * sizeof(unsigned short)); @@ -1093,12 +1093,12 @@ index 018d932..4c7d3e0 100644 urg_start_measurement(&urg, URG_DISTANCE_INTENSITY, 1, 0); - int n = urg_get_distance_intensity(&urg, data, intesnity, NULLL); \endcode -+ int n = urg_get_distance_intensity(&urg, data, intesnity, NULLL); ¥endcode ++ int n = urg_get_distance_intensity(&urg, data, intesnity, NULLL); \endcode - \~ - \see urg_start_measurement(), urg_max_data_size() -+ ¥‾ -+ ¥see urg_start_measurement(), urg_max_data_size() ++ \~ ++ \see urg_start_measurement(), urg_max_data_size() */ extern int urg_get_distance_intensity(urg_t *urg, long data[], unsigned short intensity[], @@ -1108,8 +1108,8 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief f[^̎擾 (}`GR[) -+ ¥‾japanese -+ ¥brief 距離データの取得 (マルチエコー版) ++ \~japanese ++ \brief 距離データの取得 (マルチエコー版) - }`GR[ł̋f[^擾֐łBO urg_start_measurement() #URG_MULTIECHO wŌĂяoĂKv܂B + マルチエコー版の距離データ取得関数です。事前に urg_start_measurement() を #URG_MULTIECHO 指定で呼び出しておく必要があります。 @@ -1117,20 +1117,20 @@ index 018d932..4c7d3e0 100644 - \param[in,out] urg URG ZTǗ - \param[out] data_multi f[^ [mm] - \param[out] time_stamp ^CX^v [msec] -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[out] data_multi 距離データ [mm] -+ ¥param[out] time_stamp タイムスタンプ [msec] ++ \param[in,out] urg URG センサ管理 ++ \param[out] data_multi 距離データ [mm] ++ \param[out] time_stamp タイムスタンプ [msec] - \retval >=0 Mf[^ - \retval <0 G[ -+ ¥retval >=0 受信したデータ個数 -+ ¥retval <0 エラー ++ \retval >=0 受信したデータ個数 ++ \retval <0 エラー - }`GR[Ƃ͕̋f[^łB }`GR[́AP‚̃[Uɂĕ̋f[^ꂽƂɓ܂B + マルチエコーとは複数の距離データです。 マルチエコーは、1つのレーザ発光において複数の距離データが得られたときに得られます。 - \image html multiecho_image.png }`GR[̃C[W} -+ ¥image html multiecho_image.png マルチエコーのイメージ図 ++ \image html multiecho_image.png マルチエコーのイメージ図 - time_stamp ɂ‚Ă urg_get_distance() ƓłB + time_stamp については urg_get_distance() と同じです。 @@ -1146,37 +1146,37 @@ index 018d932..4c7d3e0 100644 - data_multi[4] ... step (n + 1) f[^ (2 ‚) - data_multi[5] ... step (n + 1) f[^ (3 ‚) - ... \endverbatim -+ ¥verbatim ++ \verbatim + data_multi[0] ... step n の距離データ (1 つめ) + data_multi[1] ... step n の距離データ (2 つめ) + data_multi[2] ... step n の距離データ (3 つめ) + data_multi[3] ... step (n + 1) の 距離データ (1 つめ) + data_multi[4] ... step (n + 1) の 距離データ (2 つめ) + data_multi[5] ... step (n + 1) の 距離データ (3 つめ) -+ ... ¥endverbatim ++ ... \endverbatim - i[́Ae step ɂ urg_get_distance() ̂ƂƓ̃f[^ (3n + 0) ̈ʒuɊi[AȊÕf[^ (3n + 1), (3n + 2) ̈ʒuɍ~Ɋi[܂B\n - ‚܂ data_multi[3n + 1] >= data_multi[3n + 2] ɂȂ邱Ƃ͕ۏ؂܂ data_multi[3n + 0] data_multi[3n + 1] ̊֌W͖`łB(data_multi[3n + 1] == data_multi[3n + 2] 藧‚̂̓f[^l -1 ̂ƂB) -+ 格納順は、各 step において urg_get_distance() のときと同じ距離のデータが (3n + 0) の位置に格納され、それ以外のデータが (3n + 1), (3n + 2) の位置に降順に格納されます。¥n ++ 格納順は、各 step において urg_get_distance() のときと同じ距離のデータが (3n + 0) の位置に格納され、それ以外のデータが (3n + 1), (3n + 2) の位置に降順に格納されます。\n + つまり data_multi[3n + 1] >= data_multi[3n + 2] になることは保証されますが data_multi[3n + 0] と data_multi[3n + 1] の関係は未定義です。(data_multi[3n + 1] == data_multi[3n + 2] が成り立つのはデータ値が -1 のとき。) - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code long *data_multi = malloc(3 * urg_max_data_size(&urg) * sizeof(long)); ... urg_start_measurement(&urg, URG_MULTIECHO, 1, 0); - int n = urg_get_distance_intensity(&urg, data_multi, NULLL); \endcode -+ int n = urg_get_distance_intensity(&urg, data_multi, NULLL); ¥endcode ++ int n = urg_get_distance_intensity(&urg, data_multi, NULLL); \endcode - \~ - \see urg_start_measurement(), urg_max_data_size() -+ ¥‾ -+ ¥see urg_start_measurement(), urg_max_data_size() ++ \~ ++ \see urg_start_measurement(), urg_max_data_size() */ extern int urg_get_multiecho(urg_t *urg, long data_multi[], long *time_stamp, unsigned long long *system_time_stamp); @@ -1184,8 +1184,8 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief Ƌxf[^̎擾 (}`GR[) -+ ¥‾japanese -+ ¥brief 距離と強度データの取得 (マルチエコー版) ++ \~japanese ++ \brief 距離と強度データの取得 (マルチエコー版) - urg_get_multiecho() ɉAxf[^̎擾ł֐łBO urg_start_measurement() #URG_MULTIECHO_INTENSITY wŌĂяoĂKv܂B + urg_get_multiecho() に加え、強度データの取得できる関数です。事前に urg_start_measurement() を #URG_MULTIECHO_INTENSITY 指定で呼び出しておく必要があります。 @@ -1194,15 +1194,15 @@ index 018d932..4c7d3e0 100644 - \param[out] data_multi f[^ [mm] - \param[out] intensity_multi xf[^ - \param[out] time_stamp ^CX^v [msec] -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[out] data_multi 距離データ [mm] -+ ¥param[out] intensity_multi 強度データ -+ ¥param[out] time_stamp タイムスタンプ [msec] ++ \param[in,out] urg URG センサ管理 ++ \param[out] data_multi 距離データ [mm] ++ \param[out] intensity_multi 強度データ ++ \param[out] time_stamp タイムスタンプ [msec] - \retval >=0 Mf[^ - \retval <0 G[ -+ ¥retval >=0 受信したデータ個数 -+ ¥retval <0 エラー ++ \retval >=0 受信したデータ個数 ++ \retval <0 エラー - data_multi, time_stamp ɂ‚Ă urg_get_multiecho() ƓłB + data_multi, time_stamp については urg_get_multiecho() と同じです。 @@ -1211,10 +1211,10 @@ index 018d932..4c7d3e0 100644 + intensity_multi のデータの並びは data_multi と対応したものになります。intensity_multi に格納されるデータ数は urg_max_data_size() で取得できます。 - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code int data_size = urg_max_data_size(&urg); long *data_multi = malloc(3 * data_size * sizeof(long)); long *intensity_multi = malloc(3 * data_size * sizeof(unsigned short)); @@ -1223,12 +1223,12 @@ index 018d932..4c7d3e0 100644 urg_start_measurement(&urg, URG_DISTANCE_INTENSITY, 1, 0); int n = urg_get_multiecho_intensity(&urg, data_multi, - intesnity_multi, NULLL); \endcode -+ intesnity_multi, NULLL); ¥endcode ++ intesnity_multi, NULLL); \endcode - \~ - \see urg_start_measurement(), urg_max_data_size() -+ ¥‾ -+ ¥see urg_start_measurement(), urg_max_data_size() ++ \~ ++ \see urg_start_measurement(), urg_max_data_size() */ extern int urg_get_multiecho_intensity(urg_t *urg, long data_multi[], unsigned short intensity_multi[], @@ -1238,36 +1238,36 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief v𒆒fA[U܂ -+ ¥‾japanese -+ ¥brief 計測を中断し、レーザを消灯させます ++ \~japanese ++ \brief 計測を中断し、レーザを消灯させます - \ref urg_start_measurement() ̌v𒆒f܂B -+ ¥ref urg_start_measurement() の計測を中断します。 ++ \ref urg_start_measurement() の計測を中断します。 - \param[in,out] urg URG ZTǗ -+ ¥param[in,out] urg URG センサ管理 ++ \param[in,out] urg URG センサ管理 - \retval 0 - \retval <0 G[ -+ ¥retval 0 正常 -+ ¥retval <0 エラー ++ \retval 0 正常 ++ \retval <0 エラー - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code urg_start_measurement(&urg, URG_DISTANCE, URG_SCAN_INFINITY, 0); for (int i = 0; i < 10; ++i) { urg_get_distance(&urg, data, NULL); } - urg_stop_measurement(&urg); \endcode -+ urg_stop_measurement(&urg); ¥endcode ++ urg_stop_measurement(&urg); \endcode - \~ - \see urg_start_measurement() -+ ¥‾ -+ ¥see urg_start_measurement() ++ \~ ++ \see urg_start_measurement() */ extern int urg_stop_measurement(urg_t *urg); @@ -1275,8 +1275,8 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief v͈͂ݒ肵܂ -+ ¥‾japanese -+ ¥brief 計測範囲を設定します ++ \~japanese ++ \brief 計測範囲を設定します - ZTv͈͂ step lŎw肵܂Burg_get_distance() Ȃǂ̋f[^擾̊֐ŕԂf[^́AŎw肵͈͂Ő܂B + センサが計測する範囲を step 値で指定します。urg_get_distance() などの距離データ取得の関数で返されるデータ数は、ここで指定した範囲で制限されます。 @@ -1285,56 +1285,56 @@ index 018d932..4c7d3e0 100644 - \param[in] first_step v̊Jn step - \param[in] last_step v̏I step - \param[in] skip_step vf[^O[sO -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[in] first_step 計測の開始 step -+ ¥param[in] last_step 計測の終了 step -+ ¥param[in] skip_step 計測データをグルーピングする個数 ++ \param[in,out] urg URG センサ管理 ++ \param[in] first_step 計測の開始 step ++ \param[in] last_step 計測の終了 step ++ \param[in] skip_step 計測データをグルーピングする個数 - \retval 0 - \retval <0 G[ -+ ¥retval 0 正常 -+ ¥retval <0 エラー ++ \retval 0 正常 ++ \retval <0 エラー - ZT step ́AZTʂ 0 ƂAZT㕔猩Ĕv܂̌̒lƂȂ鏇ɊU܂B + センサの step は、センサ正面を 0 とし、センサ上部から見て反時計まわりの向きが正の値となる順に割り振られます。 - \image html sensor_angle_image.png ZT step ̊֌W -+ ¥image html sensor_angle_image.png センサと step の関係 ++ \image html sensor_angle_image.png センサと step の関係 - step ̊ԊuƁAőlAŏl̓ZTˑłBstep l̍őlAŏl urg_step_min_max() Ŏ擾ł܂B\n -+ step の間隔と、最大値、最小値はセンサ依存です。step 値の最大値、最小値は urg_step_min_max() で取得できます。¥n ++ step の間隔と、最大値、最小値はセンサ依存です。step 値の最大値、最小値は urg_step_min_max() で取得できます。\n - first_step, last_step Ńf[^̌v͈͂w肵܂Bv͈͂ [first_step, last_step] ƂȂ܂B + first_step, last_step でデータの計測範囲を指定します。計測範囲は [first_step, last_step] となります。 - skip_step ́Avf[^O[sOw肵܂Bwłl [0, 99] łB\n - skip_step ́Aw肳ꂽ̃f[^ 1 ‚ɂ܂Ƃ߂邱ƂŁAZTMf[^ʂ炵A擾s֐̉߂ƂɎg܂BAf[^܂Ƃ߂邽߁Af[^̕\͌܂B -+ skip_step は、計測データをグルーピングする個数を指定します。指定できる値は [0, 99] です。¥n ++ skip_step は、計測データをグルーピングする個数を指定します。指定できる値は [0, 99] です。\n + skip_step は、指定された数のデータを 1 つにまとめることで、センサから受信するデータ量を減らし、距離取得を行う関数の応答性を高めるときに使います。ただし、データをまとめるため、得られるデータの分解能は減ります。 - ႦΈȉ̂悤ȋf[^ꍇ - \verbatim + 例えば以下のような距離データが得られる場合に -+ ¥verbatim ++ \verbatim 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 - \endverbatim -+ ¥endverbatim ++ \endverbatim - skip_step 2 w肷ƁAf[^ - \verbatim - \endverbatim + skip_step に 2 を指定すると、得られるデータは -+ ¥verbatim -+ ¥endverbatim ++ \verbatim ++ \endverbatim - f[^́A܂Ƃ߂f[^̂AԏȒl̃f[^p܂B + データは、まとめるデータのうち、一番小さな値のデータが用いられます。 - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code urg_set_scanning_parameter(&urg, urg_deg2step(&urg, -45), urg_deg2step(&urg, +45), 1); urg_start_measurement(&urg, URG_DISTANCE, 0); @@ -1342,13 +1342,13 @@ index 018d932..4c7d3e0 100644 for (int i = 0; i < n; ++i) { - printf("%d [mm], %d [deg]\n", data[i], urg_index2deg(&urg, i)); - } \endcode -+ printf("%d [mm], %d [deg]¥n", data[i], urg_index2deg(&urg, i)); -+ } ¥endcode ++ printf("%d [mm], %d [deg]\n", data[i], urg_index2deg(&urg, i)); ++ } \endcode - \~ - \see urg_step_min_max(), urg_rad2step(), urg_deg2step() -+ ¥‾ -+ ¥see urg_step_min_max(), urg_rad2step(), urg_deg2step() ++ \~ ++ \see urg_step_min_max(), urg_rad2step(), urg_deg2step() */ extern int urg_set_scanning_parameter(urg_t *urg, int first_step, int last_step, int skip_step); @@ -1357,21 +1357,21 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief ʐMf[^̃TCYύX -+ ¥‾japanese -+ ¥brief 通信データのサイズ変更 ++ \~japanese ++ \brief 通信データのサイズ変更 - f[^ZTM̍ۂ̃f[^TCYύX܂B + 距離データをセンサから受信の際のデータサイズを変更します。 - \param[in,out] urg URG ZTǗ - \param[in] data_byte l\f[^̃oCg -+ ¥param[in,out] urg URG センサ管理 -+ ¥param[in] data_byte 距離値を表現するデータのバイト数 ++ \param[in,out] urg URG センサ管理 ++ \param[in] data_byte 距離値を表現するデータのバイト数 - \retval 0 - \retval <0 G[ -+ ¥retval 0 成功 -+ ¥retval <0 エラー ++ \retval 0 成功 ++ \retval <0 エラー - data_byte ɂ + data_byte には @@ -1383,7 +1383,7 @@ index 018d932..4c7d3e0 100644 - wł܂B\n - Ԃł͋ 3 byte ŕ\悤ɂȂĂ܂B̐ݒ 2 byte ɐݒ肷邱ƂŁAZTMf[^ 2/3 ɂȂ܂BA擾ł鋗̍ől 4095 ɂȂ邽߁AϑΏۂ 4 [m] ȓ͈̔͂ɑ݂ꍇ̂ݗpĉB -+ を指定できます。¥n ++ を指定できます。\n + 初期状態では距離を 3 byte で表現するようになっています。この設定を 2 byte に設定することで、センサから受信するデータ数は 2/3 になります。ただし、取得できる距離の最大値が 4095 になるため、観測したい対象が 4 [m] 以内の範囲に存在する場合のみ利用して下さい。 */ extern int urg_set_communication_data_size(urg_t *urg, @@ -1391,25 +1391,25 @@ index 018d932..4c7d3e0 100644 - /*! \~japanese [U𔭌 */ -+ /*! ¥‾japanese レーザを発光させる */ ++ /*! \~japanese レーザを発光させる */ extern int urg_laser_on(urg_t *urg); - /*! \~japanese [U */ -+ /*! ¥‾japanese レーザを消灯する */ ++ /*! \~japanese レーザを消灯する */ extern int urg_laser_off(urg_t *urg); - /*! \~japanese ZTċN */ -+ /*! ¥‾japanese センサを再起動する */ ++ /*! \~japanese センサを再起動する */ extern int urg_reboot(urg_t *urg); /*! - \~japanese - \brief ZTd͂̏ԂɑJڂ -+ ¥‾japanese -+ ¥brief センサを低消費電力の状態に遷移させる ++ \~japanese ++ \brief センサを低消費電力の状態に遷移させる - d͂̃[hł́AXLỉ]~vf܂B + 低消費電力のモードでは、スキャナの回転が停止し計測も中断されます。 @@ -1422,10 +1422,10 @@ index 018d932..4c7d3e0 100644 + - スキャナの回転が停止する。 - d͂̃[h甲邽߂ɂ \ref urg_wakeup() ֐ĂяoĉB -+ 低消費電力のモードから抜けるためには ¥ref urg_wakeup() 関数を呼び出して下さい。 ++ 低消費電力のモードから抜けるためには \ref urg_wakeup() 関数を呼び出して下さい。 - \see urg_wakeup() -+ ¥see urg_wakeup() ++ \see urg_wakeup() */ extern void urg_sleep(urg_t *urg); @@ -1433,24 +1433,24 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief ZTd͂̃[hʏ̏ԂɑJڂ -+ ¥‾japanese -+ ¥brief センサを低消費電力のモードから通常の状態に遷移させる ++ \~japanese ++ \brief センサを低消費電力のモードから通常の状態に遷移させる - \see urg_sleep() -+ ¥see urg_sleep() ++ \see urg_sleep() */ extern void urg_wakeup(urg_t *urg); /*! - \~japanese - \brief ZTvłԂԂ -+ ¥‾japanese -+ ¥brief センサが計測できる状態かを返す ++ \~japanese ++ \brief センサが計測できる状態かを返す - \retval 1 ZTvłԂɂ - \retval 0 ZTvłԂɂȂ -+ ¥retval 1 センサが計測できる状態にある -+ ¥retval 0 センサが計測できる状態にない ++ \retval 1 センサが計測できる状態にある ++ \retval 0 センサが計測できる状態にない - NŃXLỉ]肵ĂȂꍇA炩̃G[ŌvłȂꍇÅ֐ 0 Ԃ܂B + 起動直後でスキャナの回転が安定していない場合や、何らかのエラーで計測できない場合、この関数は 0 を返します。 @@ -1461,17 +1461,17 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief ZT^𕶎ŕԂ -+ ¥‾japanese -+ ¥brief センサ型式を文字列で返す ++ \~japanese ++ \brief センサ型式を文字列で返す - ZŤ^𕶎ŕԂBԂ镶̓ZTˑƂȂB + センサの型式を文字列で返す。返される文字列はセンサ依存となる。 - \param[in] urg URG ZTǗ -+ ¥param[in] urg URG センサ管理 ++ \param[in] urg URG センサ管理 - \return ZT^̕ -+ ¥return センサ型式の文字列 ++ \return センサ型式の文字列 */ extern const char *urg_sensor_product_type(urg_t *urg); @@ -1479,29 +1479,29 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief ZT̃VA ID Ԃ -+ ¥‾japanese -+ ¥brief センサのシリアル ID 文字列を返す ++ \~japanese ++ \brief センサのシリアル ID 文字列を返す - ZT̃VA ID ԂBԂ镶̓ZTˑƂȂB + センサのシリアル ID 文字列を返す。返される文字列はセンサ依存となる。 - \param[in] urg URG ZTǗ -+ ¥param[in] urg URG センサ管理 ++ \param[in] urg URG センサ管理 - \return VA ID -+ ¥return シリアル ID 文字列 ++ \return シリアル ID 文字列 */ extern const char *urg_sensor_serial_id(urg_t *urg); /*! - \brief returns the vendor name -+ ¥brief returns the vendor name ++ \brief returns the vendor name - \param[in] URG -+ ¥param[in] URG ++ \param[in] URG - \return The vendor name -+ ¥return The vendor name ++ \return The vendor name */ extern const char *urg_sensor_vendor(urg_t *urg); @@ -1509,17 +1509,17 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief ZT̃o[WԂ -+ ¥‾japanese -+ ¥brief センサのバージョン文字列を返す ++ \~japanese ++ \brief センサのバージョン文字列を返す - ZT̃\tgEFAEo[WԂBԂ镶̓ZTˑƂȂB + センサのソフトウェア・バージョン文字列を返す。返される文字列はセンサ依存となる。 - \param[in] urg URG ZTǗ -+ ¥param[in] urg URG センサ管理 ++ \param[in] urg URG センサ管理 - \return o[W -+ ¥return バージョン文字列 ++ \return バージョン文字列 */ extern const char *urg_sensor_firmware_version(urg_t *urg); @@ -1527,29 +1527,29 @@ index 018d932..4c7d3e0 100644 /*! - \brief returns the protocol version -+ ¥brief returns the protocol version ++ \brief returns the protocol version - \param[in] URG -+ ¥param[in] URG ++ \param[in] URG - \return The current protocol version -+ ¥return The current protocol version ++ \return The current protocol version */ extern const char *urg_sensor_protocol_version(urg_t *urg); /*! - \~japanese - \brief ZT̃Xe[^XԂ -+ ¥‾japanese -+ ¥brief センサのステータス文字列を返す ++ \~japanese ++ \brief センサのステータス文字列を返す - ZT̃Xe[^XԂBԂ镶̓ZTˑƂȂB + センサのステータス文字列を返す。返される文字列はセンサ依存となる。 - \param[in] urg URG ZTǗ - \return Xe[^X -+ ¥param[in] urg URG センサ管理 -+ ¥return ステータス文字列 ++ \param[in] urg URG センサ管理 ++ \return ステータス文字列 */ extern const char *urg_sensor_status(urg_t *urg); @@ -1557,19 +1557,19 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief ZT̏ԂԂ -+ ¥‾japanese -+ ¥brief センサの状態を返す ++ \~japanese ++ \brief センサの状態を返す - ZT̃Xe[^XԂBԂ镶̓ZTˑƂȂB + センサのステータス文字列を返す。返される文字列はセンサ依存となる。 - \param[in] urg URG ZTǗ - \return Ԃ -+ ¥param[in] urg URG センサ管理 -+ ¥return 状態を示す文字列 ++ \param[in] urg URG センサ管理 ++ \return 状態を示す文字列 - \attention Ԃɂ‚Ă SCIP ̒ʐMdlQƂ̂ƁB -+ ¥attention 状態については SCIP の通信仕様書を参照のこと。 ++ \attention 状態については SCIP の通信仕様書を参照のこと。 */ extern const char *urg_sensor_state(urg_t *urg); @@ -1577,8 +1577,8 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief vp̃G[nho^ -+ ¥‾japanese -+ ¥brief 計測用のエラーハンドラを登録する ++ \~japanese ++ \brief 計測用のエラーハンドラを登録する - G[nh Gx, Mx ñR}h̉ "00" "99" ȊÔƂɌĂяoB + エラーハンドラは Gx, Mx 系のコマンドの応答が "00" か "99" 以外のときに呼び出される。 @@ -1589,16 +1589,16 @@ index 018d932..4c7d3e0 100644 /*! - \~japanese - \brief SCIP ̃fR[hs -+ ¥‾japanese -+ ¥brief SCIP 文字列のデコードを行う ++ \~japanese ++ \brief SCIP 文字列のデコードを行う - \param[in] data SCIP - \param[in] data byte TCY -+ ¥param[in] data SCIP 文字列 -+ ¥param[in] data の byte サイズ ++ \param[in] data SCIP 文字列 ++ \param[in] data の byte サイズ - \retval fR[h̐l -+ ¥retval デコード後の数値 ++ \retval デコード後の数値 */ extern long urg_scip_decode(const char data[], int size); @@ -1612,11 +1612,11 @@ index 3ac5ec7..417df86 100644 /*! - \file - \brief VAʐM -+ ¥file -+ ¥brief シリアル通信 ++ \file ++ \brief シリアル通信 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_serial.h,v 1d233c7a2240 2011/02/19 03:08:45 Satofumi $ */ @@ -1698,11 +1698,11 @@ index f1650c1..30afdf5 100644 /*! - \file - \brief VAp̕⏕֐ -+ ¥file -+ ¥brief シリアル用の補助関数 ++ \file ++ \brief シリアル用の補助関数 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -1720,14 +1720,14 @@ index f1650c1..30afdf5 100644 /*! - \brief |[g URG ǂ -+ ¥brief ポートが URG かどうか ++ \brief ポートが URG かどうか - \retval 1 URG ̃|[g - \retval 0 s - \retval <0 G[ -+ ¥retval 1 URG のポート -+ ¥retval 0 不明 -+ ¥retval <0 エラー ++ \retval 1 URG のポート ++ \retval 0 不明 ++ \retval <0 エラー */ extern int urg_serial_is_urg_port(int index); @@ -1742,19 +1742,19 @@ index 8048421..2f02d0f 100644 - \file - \~japanese - \brief URG ZTp̕⏕֐ -+ ¥file -+ ¥‾japanese -+ ¥brief URG センサ用の補助関数 ++ \file ++ \~japanese ++ \brief URG センサ用の補助関数 - \~english - \brief URG sensor utility -+ ¥‾english -+ ¥brief URG sensor utility ++ \~english ++ \brief URG sensor utility - \~ - \author Satofumi KAMIMURA -+ ¥‾ -+ ¥author Satofumi KAMIMURA ++ \~ ++ \author Satofumi KAMIMURA $Id: urg_utils.h,v 630ee326c5ce 2011/02/19 08:06:25 Satofumi $ */ @@ -1764,26 +1764,26 @@ index 8048421..2f02d0f 100644 /*! - \~japanese - \brief URG ̃G[Ԃ -+ ¥‾japanese -+ ¥brief URG のエラーを示す文字列を返す ++ \~japanese ++ \brief URG のエラーを示す文字列を返す - \param[in] urg URG ZTǗ -+ ¥param[in] urg URG センサ管理 ++ \param[in] urg URG センサ管理 - \retval URG ̃G[ -+ ¥retval URG のエラーを示す文字列 ++ \retval URG のエラーを示す文字列 - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code if (!urg_open(&urg, "/dev/ttyACM0", 115200, URG_SERIAL)) { - printf("urg_open: %s\n", urg_error(&urg)); -+ printf("urg_open: %s¥n", urg_error(&urg)); ++ printf("urg_open: %s\n", urg_error(&urg)); return -1; - } \endcode -+ } ¥endcode ++ } \endcode */ extern const char *urg_error(const urg_t *urg); @@ -1791,8 +1791,8 @@ index 8048421..2f02d0f 100644 /*! - \~japanese - \brief ZTԂ̍őlAŏlԂ -+ ¥‾japanese -+ ¥brief センサが返す距離の最大値、最小値を返す ++ \~japanese ++ \brief センサが返す距離の最大値、最小値を返す - ZTԂ [ŏl, ől] ŕԂ܂B + センサが返す距離を [最小値, 最大値] で返します。 @@ -1800,15 +1800,15 @@ index 8048421..2f02d0f 100644 - \param[in] urg URG ZTǗ - \param[out] min_distance ŏl [mm] - \param[out] max_distance ől [mm] -+ ¥param[in] urg URG センサ管理 -+ ¥param[out] min_distance 最小値 [mm] -+ ¥param[out] max_distance 最大値 [mm] ++ \param[in] urg URG センサ管理 ++ \param[out] min_distance 最小値 [mm] ++ \param[out] max_distance 最大値 [mm] - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code long min_distance, max_distance; urg_distance_min_max(&urg, &min_distance, &max_distance); @@ -1817,7 +1817,7 @@ index 8048421..2f02d0f 100644 } ... - } \endcode -+ } ¥endcode ++ } \endcode */ extern void urg_distance_min_max(const urg_t *urg, long *min_distance, long *max_distance); @@ -1826,8 +1826,8 @@ index 8048421..2f02d0f 100644 /*! - \~japanese - \brief v step ̍őlAŏlԂ -+ ¥‾japanese -+ ¥brief 計測 step の最大値、最小値を返す ++ \~japanese ++ \brief 計測 step の最大値、最小値を返す - urg_set_scanning_parameter() Ŏwł͈͂ [ŏl, ől] ŕԂB + urg_set_scanning_parameter() で指定できる範囲を [最小値, 最大値] で返す。 @@ -1835,75 +1835,75 @@ index 8048421..2f02d0f 100644 - \param[in] urg URG ZTǗ - \param[out] min_step ŏl - \param[out] max_step ől -+ ¥param[in] urg URG センサ管理 -+ ¥param[out] min_step 最小値 -+ ¥param[out] max_step 最大値 ++ \param[in] urg URG センサ管理 ++ \param[out] min_step 最小値 ++ \param[out] max_step 最大値 - step ̓ZTʂ 0 łAZT㕔猩ꍇ̔v܂̕Av܂̕ step lƂȂB + step はセンサ正面が 0 であり、センサ上部から見た場合の反時計まわりの方向が正、時計まわりの方向が負の step 値となる。 - \image html sensor_step_image.png ZT step ̊֌W -+ ¥image html sensor_step_image.png センサと step の関係 ++ \image html sensor_step_image.png センサと step の関係 - min_step, max_step ̒l̓ZTɂĈقȂB + min_step, max_step の値はセンサによって異なる。 - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code urg_step_min_max(&urg, &min_step, &max_step); - printf("range first: %d [deg]\n", urg_step2deg(&urg, min_step)); - printf("range last : %d [deg]\n", urg_step2deg(&urg, max_step)); \endcode -+ printf("range first: %d [deg]¥n", urg_step2deg(&urg, min_step)); -+ printf("range last : %d [deg]¥n", urg_step2deg(&urg, max_step)); ¥endcode ++ printf("range first: %d [deg]\n", urg_step2deg(&urg, min_step)); ++ printf("range last : %d [deg]\n", urg_step2deg(&urg, max_step)); \endcode - \see urg_set_scanning_parameter(), urg_step2rad(), urg_step2deg() -+ ¥see urg_set_scanning_parameter(), urg_step2rad(), urg_step2deg() ++ \see urg_set_scanning_parameter(), urg_step2rad(), urg_step2deg() */ extern void urg_step_min_max(const urg_t *urg, int *min_step, int *max_step); - /*! \~japanese PXLɂ鎞 [usec] Ԃ */ -+ /*! ¥‾japanese 1スキャンにかかる時間 [usec] を返す */ ++ /*! \~japanese 1スキャンにかかる時間 [usec] を返す */ extern long urg_scan_usec(const urg_t *urg); - /*! \~japanese 擾f[^̍őlԂ */ -+ /*! ¥‾japanese 取得データ数の最大値を返す */ ++ /*! \~japanese 取得データ数の最大値を返す */ extern int urg_max_data_size(const urg_t *urg); /*! - \~japanese - \brief CfbNXƊpx(radian)̕ϊs -+ ¥‾japanese -+ ¥brief インデックスと角度(radian)の変換を行う ++ \~japanese ++ \brief インデックスと角度(radian)の変換を行う - CfbNƂ urg_get_distance() Ȃǂ̋f[^擾֐Ԃf[^zɂ‚Ă̒lłB̊֐́AŌɍsf[^擾֐̃f[^zɂ‚ėLƂȂB + インデックとは urg_get_distance() などの距離データ取得関数が返したデータ配列についての値である。この関数は、最後に行った距離データ取得関数のデータ配列について有効となる。 - \param[in] urg URG ZTǗ - \param[in] index CfbNX -+ ¥param[in] urg URG センサ管理 -+ ¥param[in] index インデックス ++ \param[in] urg URG センサ管理 ++ \param[in] index インデックス - \return px [radian] -+ ¥return 角度 [radian] ++ \return 角度 [radian] - index ́A擾vf[^ɂ‚Ă̒lł step pxƂ̊֌W͎擾ݒɂقȂB + index は、取得した計測データについての値であり step や角度との関係は取得設定により異なる。 - \image html sensor_index_image.png ZŤv͈͂ƃCfbNX̊֌W -+ ¥image html sensor_index_image.png センサの計測範囲とインデックスの関係 ++ \image html sensor_index_image.png センサの計測範囲とインデックスの関係 - \~ -+ ¥‾ ++ \~ Example - \code -+ ¥code ++ \code int n = urg_get_distance(&urg, data, NULL); for (int i = 0; i < n; ++i) { long distance = data[i]; @@ -1912,77 +1912,77 @@ index 8048421..2f02d0f 100644 double y = distance * sin(radian); - printf("%.1f, %.1f\n", x, y); - } \endcode -+ printf("%.1f, %.1f¥n", x, y); -+ } ¥endcode ++ printf("%.1f, %.1f\n", x, y); ++ } \endcode - \see urg_index2deg(), urg_rad2index(), urg_deg2index() -+ ¥see urg_index2deg(), urg_rad2index(), urg_deg2index() ++ \see urg_index2deg(), urg_rad2index(), urg_deg2index() */ extern double urg_index2rad(const urg_t *urg, int index); - /*! \~japanese CfbNXƊpx(degree)̕ϊs */ -+ /*! ¥‾japanese インデックスと角度(degree)の変換を行う */ ++ /*! \~japanese インデックスと角度(degree)の変換を行う */ extern double urg_index2deg(const urg_t *urg, int index); - /*! \~japanese px(radian)ƃCfbNX̕ϊs */ -+ /*! ¥‾japanese 角度(radian)とインデックスの変換を行う */ ++ /*! \~japanese 角度(radian)とインデックスの変換を行う */ extern int urg_rad2index(const urg_t *urg, double radian); - /*! \~japanese px(degree)ƃCfbNX̕ϊs */ -+ /*! ¥‾japanese 角度(degree)とインデックスの変換を行う */ ++ /*! \~japanese 角度(degree)とインデックスの変換を行う */ extern int urg_deg2index(const urg_t *urg, double degree); /*! - \~japanese - \brief px(radian) step ̕ϊs -+ ¥‾japanese -+ ¥brief 角度(radian)と step の変換を行う ++ \~japanese ++ \brief 角度(radian)と step の変換を行う - urg_step_min_max() Œ`Ă step ɂ‚āApx(radian) step ̕ϊsB + urg_step_min_max() で定義されている step について、角度(radian)と step の変換を行う。 - \param[in] urg URG ZTǗ - \param[in] radian px [radian] -+ ¥param[in] urg URG センサ管理 -+ ¥param[in] radian 角度 [radian] ++ \param[in] urg URG センサ管理 ++ \param[in] radian 角度 [radian] - \return step -+ ¥return step ++ \return step - \image html sensor_angle_image.png ZT step ƊpxƂ̊֌W -+ ¥image html sensor_angle_image.png センサの step と角度との関係 ++ \image html sensor_angle_image.png センサの step と角度との関係 - px step ֕ϊʂłȂꍇAʂ 0 ̕ɐ؂̂ĂꂽlƂȂB + 角度から step へ変換した結果が整数でない場合、結果は 0 の方向に切り捨てられた値となる。 - \~ - \see urg_step_min_max(), urg_deg2step(), urg_step2rad(), urg_step2deg() -+ ¥‾ -+ ¥see urg_step_min_max(), urg_deg2step(), urg_step2rad(), urg_step2deg() ++ \~ ++ \see urg_step_min_max(), urg_deg2step(), urg_step2rad(), urg_step2deg() */ extern int urg_rad2step(const urg_t *urg, double radian); - /*! \~japanese px(degree) step ̕ϊs */ -+ /*! ¥‾japanese 角度(degree)と step の変換を行う */ ++ /*! \~japanese 角度(degree)と step の変換を行う */ extern int urg_deg2step(const urg_t *urg, double degree); - /*! \~japanese step px(radian)̕ϊs */ -+ /*! ¥‾japanese step と 角度(radian)の変換を行う */ ++ /*! \~japanese step と 角度(radian)の変換を行う */ extern double urg_step2rad(const urg_t *urg, int step); - /*! \~japanese step px(degree)̕ϊs */ -+ /*! ¥‾japanese step と 角度(degree)の変換を行う */ ++ /*! \~japanese step と 角度(degree)の変換を行う */ extern double urg_step2deg(const urg_t *urg, int step); - /*! \~japanese step ƃCfbNX̕ϊs */ -+ /*! ¥‾japanese step とインデックスの変換を行う */ ++ /*! \~japanese step とインデックスの変換を行う */ extern int urg_step2index(const urg_t *urg, int step); #ifdef __cplusplus @@ -1994,14 +1994,14 @@ index 5cf21e5..230ad3d 100644 /*! - \~japanese - \example calculate_xy.c X-Y Wnł̈ʒuvZ -+ ¥‾japanese -+ ¥example calculate_xy.c X-Y 座標系での位置を計算する ++ \~japanese ++ \example calculate_xy.c X-Y 座標系での位置を計算する - ZTO X ̕Ƃ݂ȂsWŁAf[^ʒuo͂B + センサ前方が X 軸の方向とみなした直行座標上で、距離データを位置を出力する。 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: calculate_xy.c,v 586c4fa697ef 2011/01/24 08:50:01 Satofumi $ */ @@ -2010,18 +2010,18 @@ index 5cf21e5..230ad3d 100644 } - // \~japanese f[^擾 -+ // ¥‾japanese データ取得 ++ // \~japanese データ取得 urg_start_measurement(&urg, URG_DISTANCE, 1, 0); n = urg_get_distance(&urg, data, &time_stamp, &system_time_stamp); if (n < 0) { - printf("urg_get_distance: %s\n", urg_error(&urg)); -+ printf("urg_get_distance: %s¥n", urg_error(&urg)); ++ printf("urg_get_distance: %s\n", urg_error(&urg)); urg_close(&urg); return 1; } - // \~japanese X-Y Wn̒lo -+ // ¥‾japanese X-Y 座標系の値を出力 ++ // \~japanese X-Y 座標系の値を出力 urg_distance_min_max(&urg, &min_distance, &max_distance); for (i = 0; i < n; ++i) { long distance = data[i]; @@ -2030,13 +2030,13 @@ index 5cf21e5..230ad3d 100644 y = (long)(distance * sin(radian)); - printf("%ld, %ld\n", x, y); -+ printf("%ld, %ld¥n", x, y); ++ printf("%ld, %ld\n", x, y); } - printf("\n"); -+ printf("¥n"); ++ printf("\n"); - // \~japanese ؒf -+ // ¥‾japanese 切断 ++ // \~japanese 切断 free(data); urg_close(&urg); @@ -2048,11 +2048,11 @@ index 5039934..88e04f2 100644 /*! - \~japanese - \example find_port.c |[g̒T -+ ¥‾japanese -+ ¥example find_port.c ポートの探索 ++ \~japanese ++ \example find_port.c ポートの探索 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -2061,7 +2061,7 @@ index 5039934..88e04f2 100644 if (found_port_size == 0) { - printf("could not found ports.\n"); -+ printf("could not found ports.¥n"); ++ printf("could not found ports.\n"); return 1; } @@ -2070,7 +2070,7 @@ index 5039934..88e04f2 100644 printf(" [URG]"); } - printf("\n"); -+ printf("¥n"); ++ printf("\n"); } return 0; @@ -2082,13 +2082,13 @@ index 98f2336..3002ece 100644 /*! - \~japanese - \example get_distance.c f[^擾 -+ ¥‾japanese -+ ¥example get_distance.c 距離データを取得する ++ \~japanese ++ \example get_distance.c 距離データを取得する - \~ - \author Satofumi KAMIMURA -+ ¥‾ -+ ¥author Satofumi KAMIMURA ++ \~ ++ \author Satofumi KAMIMURA $Id: get_distance.c,v 586c4fa697ef 2011/01/24 08:50:01 Satofumi $ */ @@ -2097,10 +2097,10 @@ index 98f2336..3002ece 100644 (void)data_n; - // \~japanese Õf[^݂̂\ -+ // ¥‾japanese 前方のデータのみを表示 ++ // \~japanese 前方のデータのみを表示 front_index = urg_step2index(urg, 0); - printf("%ld [mm], (%ld [msec])\n", data[front_index], time_stamp); -+ printf("%ld [mm], (%ld [msec])¥n", data[front_index], time_stamp); ++ printf("%ld [mm], (%ld [msec])\n", data[front_index], time_stamp); #else (void)time_stamp; @@ -2109,7 +2109,7 @@ index 98f2336..3002ece 100644 long max_distance; - // \~japanese SẴf[^ X-Y ̈ʒu\ -+ // ¥‾japanese 全てのデータの X-Y の位置を表示 ++ // \~japanese 全てのデータの X-Y の位置を表示 urg_distance_min_max(urg, &min_distance, &max_distance); for (i = 0; i < data_n; ++i) { long l = data[i]; @@ -2118,7 +2118,7 @@ index 98f2336..3002ece 100644 printf("(%ld, %ld), ", x, y); } - printf("\n"); -+ printf("¥n"); ++ printf("\n"); #endif } @@ -2127,10 +2127,10 @@ index 98f2336..3002ece 100644 } - // \~japanese f[^擾 -+ // ¥‾japanese データ取得 ++ // \~japanese データ取得 #if 0 - // \~japanese f[^̎擾͈͂ύXꍇ -+ // ¥‾japanese データの取得範囲を変更する場合 ++ // \~japanese データの取得範囲を変更する場合 urg_set_scanning_parameter(&urg, urg_deg2step(&urg, -90), urg_deg2step(&urg, +90), 0); @@ -2139,7 +2139,7 @@ index 98f2336..3002ece 100644 n = urg_get_distance(&urg, data, &time_stamp, &system_time_stamp); if (n <= 0) { - printf("urg_get_distance: %s\n", urg_error(&urg)); -+ printf("urg_get_distance: %s¥n", urg_error(&urg)); ++ printf("urg_get_distance: %s\n", urg_error(&urg)); free(data); urg_close(&urg); return 1; @@ -2148,7 +2148,7 @@ index 98f2336..3002ece 100644 } - // \~japanese ؒf -+ // ¥‾japanese 切断 ++ // \~japanese 切断 free(data); urg_close(&urg); @@ -2160,11 +2160,11 @@ index 0c5acc2..584c78e 100644 /*! - \~japanese - \example get_distance_intensity.c Exf[^擾 -+ ¥‾japanese -+ ¥example get_distance_intensity.c 距離・強度データを取得する ++ \~japanese ++ \example get_distance_intensity.c 距離・強度データを取得する - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: get_distance_intensity.c,v 586c4fa697ef 2011/01/24 08:50:01 Satofumi $ */ @@ -2173,10 +2173,10 @@ index 0c5acc2..584c78e 100644 (void)data_n; - // \~japanese Õf[^݂̂\ -+ // ¥‾japanese 前方のデータのみを表示 ++ // \~japanese 前方のデータのみを表示 front_index = urg_step2index(urg, 0); - printf("%ld [mm], %d [1], (%ld [msec])\n", -+ printf("%ld [mm], %d [1], (%ld [msec])¥n", ++ printf("%ld [mm], %d [1], (%ld [msec])\n", data[front_index], intensity[front_index], time_stamp); #else @@ -2186,11 +2186,11 @@ index 0c5acc2..584c78e 100644 - // \~japanese SẴf[^\ - printf("# n = %d, time_stamp = %ld\n", data_n, time_stamp); -+ // ¥‾japanese 全てのデータを表示 -+ printf("# n = %d, time_stamp = %ld¥n", data_n, time_stamp); ++ // \~japanese 全てのデータを表示 ++ printf("# n = %d, time_stamp = %ld\n", data_n, time_stamp); for (i = 0; i < data_n; ++i) { - printf("%d, %ld, %d\n", i, data[i], intensity[i]); -+ printf("%d, %ld, %d¥n", i, data[i], intensity[i]); ++ printf("%d, %ld, %d\n", i, data[i], intensity[i]); } #endif } @@ -2199,7 +2199,7 @@ index 0c5acc2..584c78e 100644 // Distance Intensity reading only (?) on UXM-30LX if (!strstr(urg_sensor_product_type(&urg),"UXM-30LX")) { - fprintf(stderr,"Distance Intensity not supported on %s\n", -+ fprintf(stderr,"Distance Intensity not supported on %s¥n", ++ fprintf(stderr,"Distance Intensity not supported on %s\n", urg_sensor_product_type(&urg)); return 1; } @@ -2208,13 +2208,13 @@ index 0c5acc2..584c78e 100644 } - // \~japanese f[^擾 -+ // ¥‾japanese データ取得 ++ // \~japanese データ取得 urg_start_measurement(&urg, URG_DISTANCE_INTENSITY, CAPTURE_TIMES, 0); for (i = 0; i < CAPTURE_TIMES; ++i) { n = urg_get_distance_intensity(&urg, data, intensity, &time_stamp, &system_time_stamp); if (n <= 0) { - printf("urg_get_distance_intensity: %s\n", urg_error(&urg)); -+ printf("urg_get_distance_intensity: %s¥n", urg_error(&urg)); ++ printf("urg_get_distance_intensity: %s\n", urg_error(&urg)); free(data); urg_close(&urg); return 1; @@ -2223,7 +2223,7 @@ index 0c5acc2..584c78e 100644 } - // \~japanese ؒf -+ // ¥‾japanese 切断 ++ // \~japanese 切断 free(intensity); free(data); urg_close(&urg); @@ -2235,11 +2235,11 @@ index 6e3816d..b9445f6 100644 /*! - \~japanese - \example get_multiecho.c f[^(}`GR[)擾 -+ ¥‾japanese -+ ¥example get_multiecho.c 距離データ(マルチエコー)を取得する ++ \~japanese ++ \example get_multiecho.c 距離データ(マルチエコー)を取得する - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -2248,11 +2248,11 @@ index 6e3816d..b9445f6 100644 (void)data_n; - // \~japanese Õf[^݂̂\ -+ // ¥‾japanese 前方のデータのみを表示 ++ // \~japanese 前方のデータのみを表示 front_index = urg_step2index(urg, 0); print_echo_data(data, front_index); - printf("%ld\n", time_stamp); -+ printf("%ld¥n", time_stamp); ++ printf("%ld\n", time_stamp); #else (void)urg; @@ -2261,12 +2261,12 @@ index 6e3816d..b9445f6 100644 - // \~japanese SẴf[^\ - printf("# n = %d, time_stamp = %ld\n", data_n, time_stamp); -+ // ¥‾japanese 全てのデータを表示 -+ printf("# n = %d, time_stamp = %ld¥n", data_n, time_stamp); ++ // \~japanese 全てのデータを表示 ++ printf("# n = %d, time_stamp = %ld\n", data_n, time_stamp); for (i = 0; i < data_n; ++i) { print_echo_data(data, i); - printf("\n"); -+ printf("¥n"); ++ printf("\n"); } #endif } @@ -2275,13 +2275,13 @@ index 6e3816d..b9445f6 100644 } - // \~japanese f[^擾 -+ // ¥‾japanese データ取得 ++ // \~japanese データ取得 urg_start_measurement(&urg, URG_MULTIECHO, CAPTURE_TIMES, 0); for (i = 0; i < CAPTURE_TIMES; ++i) { n = urg_get_multiecho(&urg, data, &time_stamp, &system_time_stamp); if (n <= 0) { - printf("urg_get_multiecho: %s\n", urg_error(&urg)); -+ printf("urg_get_multiecho: %s¥n", urg_error(&urg)); ++ printf("urg_get_multiecho: %s\n", urg_error(&urg)); free(data); urg_close(&urg); return 1; @@ -2290,7 +2290,7 @@ index 6e3816d..b9445f6 100644 } - // \~japanese ؒf -+ // ¥‾japanese 切断 ++ // \~japanese 切断 free(data); urg_close(&urg); @@ -2302,11 +2302,11 @@ index 1c1d79c..717250b 100644 /*! - \~japanese - \example get_multiecho_intensity.c Exf[^(}`GR[)擾 -+ ¥‾japanese -+ ¥example get_multiecho_intensity.c 距離・強度データ(マルチエコー)を取得する ++ \~japanese ++ \example get_multiecho_intensity.c 距離・強度データ(マルチエコー)を取得する - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -2315,7 +2315,7 @@ index 1c1d79c..717250b 100644 -// \~japanese Ax̃f[^\ -+// ¥‾japanese 距離、強度のデータを表示する ++// \~japanese 距離、強度のデータを表示する static void print_data(urg_t *urg, long data[], unsigned short intensity[], int data_n, long time_stamp) { @@ -2324,11 +2324,11 @@ index 1c1d79c..717250b 100644 (void)data_n; - // \~japanese Õf[^݂̂\ -+ // ¥‾japanese 前方のデータのみを表示 ++ // \~japanese 前方のデータのみを表示 front_index = urg_step2index(urg, 0); print_echo_data(data, intensity, front_index); - printf("%ld\n", time_stamp); -+ printf("%ld¥n", time_stamp); ++ printf("%ld\n", time_stamp); #else (void)urg; @@ -2336,12 +2336,12 @@ index 1c1d79c..717250b 100644 - // \~japanese SẴf[^\ - printf("# n = %d, time_stamp = %ld\n", data_n, time_stamp); -+ // ¥‾japanese 全てのデータを表示 -+ printf("# n = %d, time_stamp = %ld¥n", data_n, time_stamp); ++ // \~japanese 全てのデータを表示 ++ printf("# n = %d, time_stamp = %ld\n", data_n, time_stamp); for (i = 0; i < data_n; ++i) { print_echo_data(data, intensity, i); - printf("\n"); -+ printf("¥n"); ++ printf("\n"); } #endif } @@ -2350,13 +2350,13 @@ index 1c1d79c..717250b 100644 } - // \~japanese f[^擾 -+ // ¥‾japanese データ取得 ++ // \~japanese データ取得 urg_start_measurement(&urg, URG_MULTIECHO_INTENSITY, CAPTURE_TIMES, 0); for (i = 0; i < CAPTURE_TIMES; ++i) { n = urg_get_multiecho_intensity(&urg, data, intensity, &time_stamp, &system_time_stamp); if (n <= 0) { - printf("urg_get_multiecho_intensity: %s\n", urg_error(&urg)); -+ printf("urg_get_multiecho_intensity: %s¥n", urg_error(&urg)); ++ printf("urg_get_multiecho_intensity: %s\n", urg_error(&urg)); free(data); free(intensity); urg_close(&urg); @@ -2365,7 +2365,7 @@ index 1c1d79c..717250b 100644 } - // \~japanese ؒf -+ // ¥‾japanese 切断 ++ // \~japanese 切断 free(data); free(intensity); urg_close(&urg); @@ -2377,13 +2377,13 @@ index 5a0a564..00ecb75 100644 /*! - \~japanese - \brief URG Ƃ̐ڑ -+ ¥‾japanese -+ ¥brief URG との接続 ++ \~japanese ++ \brief URG との接続 - \~ - \author Satofumi KAMIMURA -+ ¥‾ -+ ¥author Satofumi KAMIMURA ++ \~ ++ \author Satofumi KAMIMURA $Id: open_urg_sensor.c,v d00944669fc8 2011/02/16 13:41:09 Satofumi $ */ @@ -2392,7 +2392,7 @@ index 5a0a564..00ecb75 100644 int i; - // \~japanese ڑ^Cv̐ؑւ -+ // ¥‾japanese 接続タイプの切替え ++ // \~japanese 接続タイプの切替え for (i = 1; i < argc; ++i) { if (!strcmp(argv[i], "-e")) { connection_type = URG_ETHERNET; @@ -2401,10 +2401,10 @@ index 5a0a564..00ecb75 100644 } - // \~japanese ڑ -+ // ¥‾japanese 接続 ++ // \~japanese 接続 if (urg_open(urg, connection_type, device, baudrate_or_port) < 0) { - printf("urg_open: %s, %ld: %s\n", -+ printf("urg_open: %s, %ld: %s¥n", ++ printf("urg_open: %s, %ld: %s\n", device, baudrate_or_port, urg_error(urg)); return -1; } @@ -2418,13 +2418,13 @@ index 9eb9b7a..42565e4 100644 /*! - \~japanese - \brief URG Ƃ̐ڑ -+ ¥‾japanese -+ ¥brief URG との接続 ++ \~japanese ++ \brief URG との接続 - \~ - \author Satofumi KAMIMURA -+ ¥‾ -+ ¥author Satofumi KAMIMURA ++ \~ ++ \author Satofumi KAMIMURA $Id$ */ @@ -2436,11 +2436,11 @@ index c379050..8cd5094 100644 /*! - \~japanese - \example sensor_parameter.c ZT̏o -+ ¥‾japanese -+ ¥example sensor_parameter.c センサ情報の出力 ++ \~japanese ++ \example sensor_parameter.c センサ情報の出力 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: sensor_parameter.c,v 0caa22c18f6b 2010/12/30 03:36:32 Satofumi $ */ @@ -2453,24 +2453,24 @@ index c379050..8cd5094 100644 - printf("Sensor serial ID: %s\n", urg_sensor_serial_id(&urg)); - printf("Sensor status: %s\n", urg_sensor_status(&urg)); - printf("Sensor state: %s\n", urg_sensor_state(&urg)); -+ printf("Sensor product type: %s¥n", urg_sensor_product_type(&urg)); -+ printf("Sensor firmware version: %s¥n", urg_sensor_firmware_version(&urg)); -+ printf("Sensor serial ID: %s¥n", urg_sensor_serial_id(&urg)); -+ printf("Sensor status: %s¥n", urg_sensor_status(&urg)); -+ printf("Sensor state: %s¥n", urg_sensor_state(&urg)); ++ printf("Sensor product type: %s\n", urg_sensor_product_type(&urg)); ++ printf("Sensor firmware version: %s\n", urg_sensor_firmware_version(&urg)); ++ printf("Sensor serial ID: %s\n", urg_sensor_serial_id(&urg)); ++ printf("Sensor status: %s\n", urg_sensor_status(&urg)); ++ printf("Sensor state: %s\n", urg_sensor_state(&urg)); urg_step_min_max(&urg, &min_step, &max_step); - printf("step: [%d, %d]\n", min_step, max_step); -+ printf("step: [%d, %d]¥n", min_step, max_step); ++ printf("step: [%d, %d]\n", min_step, max_step); urg_distance_min_max(&urg, &min_distance, &max_distance); - printf("distance: [%ld, %ld)\n", min_distance, max_distance); -+ printf("distance: [%ld, %ld)¥n", min_distance, max_distance); ++ printf("distance: [%ld, %ld)\n", min_distance, max_distance); - printf("scan interval: %ld [usec]\n", urg_scan_usec(&urg)); - printf("sensor data size: %d\n", urg_max_data_size(&urg)); -+ printf("scan interval: %ld [usec]¥n", urg_scan_usec(&urg)); -+ printf("sensor data size: %d¥n", urg_max_data_size(&urg)); ++ printf("scan interval: %ld [usec]\n", urg_scan_usec(&urg)); ++ printf("sensor data size: %d\n", urg_max_data_size(&urg)); urg_close(&urg); @@ -2482,11 +2482,11 @@ index 196803d..0a32b1c 100644 /*! - \~japanese - \example sync_time_stamp.c ZT PC ̃^CX^v𓯊 -+ ¥‾japanese -+ ¥example sync_time_stamp.c センサと PC のタイムスタンプを同期する ++ \~japanese ++ \example sync_time_stamp.c センサと PC のタイムスタンプを同期する - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: sync_time_stamp.c,v 799c195d046c 2011/01/14 05:10:38 hokuyo $ */ @@ -2496,8 +2496,8 @@ index 196803d..0a32b1c 100644 /*! - \~japanese - \brief PC ̃^CX^vɕ␳邽߂̒lԂ -+ ¥‾japanese -+ ¥brief PC のタイムスタンプに補正するための値を返す ++ \~japanese ++ \brief PC のタイムスタンプに補正するための値を返す */ static long print_time_stamp(urg_t *urg, long time_stamp_offset) { @@ -2506,7 +2506,7 @@ index 196803d..0a32b1c 100644 if (sensor_time_stamp < 0) { - printf("urg_time_stamp: %s\n", urg_error(urg)); -+ printf("urg_time_stamp: %s¥n", urg_error(urg)); ++ printf("urg_time_stamp: %s\n", urg_error(urg)); return -1; } sensor_time_stamp -= time_stamp_offset; @@ -2515,7 +2515,7 @@ index 196803d..0a32b1c 100644 urg_stop_time_stamp_mode(urg); - printf("%ld,\t%ld\n", pc_time_stamp, sensor_time_stamp); -+ printf("%ld,¥t%ld¥n", pc_time_stamp, sensor_time_stamp); ++ printf("%ld,\t%ld\n", pc_time_stamp, sensor_time_stamp); return sensor_time_stamp - (pc_time_stamp - delay); } @@ -2524,14 +2524,14 @@ index 196803d..0a32b1c 100644 } - printf("# pc,\tsensor\n"); -+ printf("# pc,¥tsensor¥n"); ++ printf("# pc,\tsensor\n"); - // \~japanese URG ̃^CX^v PC ̃^CX^v\ -+ // ¥‾japanese URG のタイムスタンプと PC のタイムスタンプを表示 ++ // \~japanese URG のタイムスタンプと PC のタイムスタンプを表示 time_stamp_offset = print_time_stamp(&urg, 0); - // \~japanese URG ̕␳̃^CX^v PC ^CX^v\ -+ // ¥‾japanese URG の補正後のタイムスタンプと PC タイムスタンプを表示 ++ // \~japanese URG の補正後のタイムスタンプと PC タイムスタンプを表示 for (i = 0; i < TIME_STAMP_PRINT_TIMES; ++i) { print_time_stamp(&urg, time_stamp_offset); } @@ -2543,11 +2543,11 @@ index c474459..46adf8d 100644 /*! - \file - \brief ʐM̏ -+ ¥file -+ ¥brief 通信の処理 ++ \file ++ \brief 通信の処理 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_connection.c,v 0caa22c18f6b 2010/12/30 03:36:32 Satofumi $ */ @@ -2559,11 +2559,11 @@ index 1d55c3e..b670f59 100644 /*! - \~japanese - \brief URG ZTp̕⏕֐ -+ ¥‾japanese -+ ¥brief URG センサ用の補助関数 ++ \~japanese ++ \brief URG センサ用の補助関数 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_utils.c,v da778fd816c2 2011/01/05 20:02:06 Satofumi $ */ @@ -2575,11 +2575,11 @@ index cdbfb2c..72d29ec 100644 /*! - \file - \brief Oobt@ -+ ¥file -+ ¥brief リングバッファ ++ \file ++ \brief リングバッファ - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -2644,15 +2644,15 @@ index 801d366..f4fa3dd 100644 @@ -1,11 +1,11 @@ /*! - \brief URG ZT -+ ¥brief URG センサ制御 ++ \brief URG センサ制御 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_sensor.c,v 66816edea765 2011/05/03 06:53:52 satofumi $ - \todo Mx vɑ Mx R}h𑗐MƂɁAK؂ɓ삷悤ɂ -+ ¥todo Mx 計測中に他の Mx コマンドを送信したときに、適切に動作するようにする ++ \todo Mx 計測中に他の Mx コマンドを送信したときに、適切に動作するようにする */ #include "urg_c/urg_sensor.h" @@ -2697,7 +2697,7 @@ index 801d366..f4fa3dd 100644 if (p) { - *p = '\0'; -+ *p = '¥0'; ++ *p = '\0'; } do { @@ -2710,7 +2710,7 @@ index 801d366..f4fa3dd 100644 memcpy(p, buffer, n); p += n; - *p++ = '\0'; -+ *p++ = '¥0'; ++ *p++ = '\0'; filled_size += n; } @@ -2744,7 +2744,7 @@ index 801d366..f4fa3dd 100644 } - connection_write(&urg->connection, "QT\n", 3); -+ connection_write(&urg->connection, "QT¥n", 3); ++ connection_write(&urg->connection, "QT\n", 3); urg->is_sending = URG_TRUE; urg->is_laser_on = URG_FALSE; ignore_receive_data(urg, timeout); @@ -2760,7 +2760,7 @@ index 801d366..f4fa3dd 100644 - // "SS" R}hŃ{[[gύX - snprintf(buffer, SS_COMMAND_SIZE, "SS%06ld\n", next_baudrate); + // "SS" コマンドでボーレートを変更する -+ snprintf(buffer, SS_COMMAND_SIZE, "SS%06ld¥n", next_baudrate); ++ snprintf(buffer, SS_COMMAND_SIZE, "SS%06ld\n", next_baudrate); ret = scip_response(urg, buffer, ss_expected, urg->timeout, NULL, 0); - // 0F ̂Ƃ Ethernet p̃ZTƂ݂ȂA퉞Ԃ @@ -2804,7 +2804,7 @@ index 801d366..f4fa3dd 100644 - // QT 𑗐MAԂ邩Ń{[[gvĂ邩mF - ret = scip_response(urg, "QT\n", qt_expected, MAX_TIMEOUT, + // QT を送信し、応答が返されるかでボーレートが一致しているかを確認する -+ ret = scip_response(urg, "QT¥n", qt_expected, MAX_TIMEOUT, ++ ret = scip_response(urg, "QT\n", qt_expected, MAX_TIMEOUT, receive_buffer, RECEIVE_BUFFER_SIZE); if (ret > 0) { if (!strcmp(receive_buffer, "E")) { @@ -2817,7 +2817,7 @@ index 801d366..f4fa3dd 100644 - // "E" Ԃꂽꍇ́ASCIP 1.1 Ƃ݂Ȃ "SCIP2.0" 𑗐M - ret = scip_response(urg, "SCIP2.0\n", scip20_expected, + // "E" が返された場合は、SCIP 1.1 とみなし "SCIP2.0" を送信する -+ ret = scip_response(urg, "SCIP2.0¥n", scip20_expected, ++ ret = scip_response(urg, "SCIP2.0\n", scip20_expected, MAX_TIMEOUT, NULL, 0); - // SCIP2.0 ̍Ō̉sǂݔ΂ @@ -2834,7 +2834,7 @@ index 801d366..f4fa3dd 100644 - // "0Ee" Ԃꂽꍇ́ATM [hƂ݂Ȃ "TM2" 𑗐M - scip_response(urg, "TM2\n", tm2_expected, + // "0Ee" が返された場合は、TM モードとみなし "TM2" を送信する -+ scip_response(urg, "TM2¥n", tm2_expected, ++ scip_response(urg, "TM2\n", tm2_expected, MAX_TIMEOUT, NULL, 0); - // {[[gύXĖ߂ @@ -2882,7 +2882,7 @@ index 801d366..f4fa3dd 100644 int i; - int ret = scip_response(urg, "PP\n", pp_expected, MAX_TIMEOUT, -+ int ret = scip_response(urg, "PP¥n", pp_expected, MAX_TIMEOUT, ++ int ret = scip_response(urg, "PP\n", pp_expected, MAX_TIMEOUT, receive_buffer, RECEIVE_BUFFER_SIZE); if (ret < 0) { return ret; @@ -2918,7 +2918,7 @@ index 801d366..f4fa3dd 100644 while (p < last_p) { value <<= 6; - value &= ~0x3f; -+ value &= ‾0x3f; ++ value &= ~0x3f; value |= *p++ - 0x30; } return value; @@ -2927,7 +2927,7 @@ index 801d366..f4fa3dd 100644 memcpy(buffer, parameter, size); - buffer[size] = '\0'; -+ buffer[size] = '¥0'; ++ buffer[size] = '\0'; return strtol(buffer, NULL, 10); } @@ -3156,7 +3156,7 @@ index 801d366..f4fa3dd 100644 - // TM0 𔭍s - n = scip_response(urg, "TM0\n", expected, urg->timeout, NULL, 0); + // TM0 を発行する -+ n = scip_response(urg, "TM0¥n", expected, urg->timeout, NULL, 0); ++ n = scip_response(urg, "TM0\n", expected, urg->timeout, NULL, 0); if (n <= 0) { return set_errno_and_return(urg, URG_INVALID_RESPONSE); } else { @@ -3165,7 +3165,7 @@ index 801d366..f4fa3dd 100644 } - ret = scip_response(urg, "TM1\n", expected, -+ ret = scip_response(urg, "TM1¥n", expected, ++ ret = scip_response(urg, "TM1\n", expected, urg->timeout, buffer, BUFFER_SIZE); if (ret < 0) { return ret; @@ -3186,7 +3186,7 @@ index 801d366..f4fa3dd 100644 - // TM2 𔭍s - n = scip_response(urg, "TM2\n", expected, urg->timeout, NULL, 0); + // TM2 を発行する -+ n = scip_response(urg, "TM2¥n", expected, urg->timeout, NULL, 0); ++ n = scip_response(urg, "TM2\n", expected, urg->timeout, NULL, 0); if (n <= 0) { return set_errno_and_return(urg, URG_INVALID_RESPONSE); } else { @@ -3205,14 +3205,14 @@ index 801d366..f4fa3dd 100644 urg_laser_on(urg); - write_size = snprintf(buffer, BUFFER_SIZE, "%c%c%04d%04d%02d\n", -+ write_size = snprintf(buffer, BUFFER_SIZE, "%c%c%04d%04d%02d¥n", ++ write_size = snprintf(buffer, BUFFER_SIZE, "%c%c%04d%04d%02d\n", single_scan_ch, scan_type_ch, urg->scanning_first_step + front_index, urg->scanning_last_step + front_index, urg->scanning_skip_step); } else { - write_size = snprintf(buffer, BUFFER_SIZE, "%c%c%04d%04d%02d%01d%02d\n", -+ write_size = snprintf(buffer, BUFFER_SIZE, "%c%c%04d%04d%02d%01d%02d¥n", ++ write_size = snprintf(buffer, BUFFER_SIZE, "%c%c%04d%04d%02d%01d%02d\n", continuous_scan_ch, scan_type_ch, urg->scanning_first_step + front_index, urg->scanning_last_step + front_index, @@ -3241,7 +3241,7 @@ index 801d366..f4fa3dd 100644 - // QT 𔭍s - n = connection_write(&urg->connection, "QT\n", 3); + // QT を発行する -+ n = connection_write(&urg->connection, "QT¥n", 3); ++ n = connection_write(&urg->connection, "QT\n", 3); if (n != 3) { return set_errno_and_return(urg, URG_SEND_ERROR); } @@ -3276,7 +3276,7 @@ index 801d366..f4fa3dd 100644 } - ret = scip_response(urg, "BM\n", expected, urg->timeout, NULL, 0); -+ ret = scip_response(urg, "BM¥n", expected, urg->timeout, NULL, 0); ++ ret = scip_response(urg, "BM\n", expected, urg->timeout, NULL, 0); if (ret >= 0) { urg->is_laser_on = URG_TRUE; ret = 0; @@ -3288,7 +3288,7 @@ index 801d366..f4fa3dd 100644 + // 2回目の RB 送信後、接続を切断する for (i = 0; i < 2; ++i) { - ret = scip_response(urg, "RB\n", expected, urg->timeout, NULL, 0); -+ ret = scip_response(urg, "RB¥n", expected, urg->timeout, NULL, 0); ++ ret = scip_response(urg, "RB\n", expected, urg->timeout, NULL, 0); if (ret < 0) { return set_errno_and_return(urg, URG_INVALID_RESPONSE); } @@ -3297,7 +3297,7 @@ index 801d366..f4fa3dd 100644 } - scip_response(urg, "%SL\n", sl_expected, MAX_TIMEOUT, -+ scip_response(urg, "%SL¥n", sl_expected, MAX_TIMEOUT, ++ scip_response(urg, "%SL\n", sl_expected, MAX_TIMEOUT, receive_buffer, RECEIVE_BUFFER_SIZE); } @@ -3306,7 +3306,7 @@ index 801d366..f4fa3dd 100644 char *last_p = strchr(p + start_str_len, end_ch[j]); if (last_p) { - *last_p = '\0'; -+ *last_p = '¥0'; ++ *last_p = '\0'; memcpy(dest, p + start_str_len, last_p - (p + start_str_len) + 1); return dest; @@ -3315,7 +3315,7 @@ index 801d366..f4fa3dd 100644 ret = receive_command_response(urg, receive_buffer, RECEIVE_BUFFER_SIZE, - "VV\n", VV_RESPONSE_LINES); -+ "VV¥n", VV_RESPONSE_LINES); ++ "VV\n", VV_RESPONSE_LINES); if (ret) { return ret; } @@ -3324,7 +3324,7 @@ index 801d366..f4fa3dd 100644 ret = receive_command_response(urg, receive_buffer, RECEIVE_BUFFER_SIZE, - "VV\n", VV_RESPONSE_LINES); -+ "VV¥n", VV_RESPONSE_LINES); ++ "VV\n", VV_RESPONSE_LINES); if (ret) { return ret; } @@ -3333,7 +3333,7 @@ index 801d366..f4fa3dd 100644 ret = receive_command_response(urg, receive_buffer, RECEIVE_BUFFER_SIZE, - "VV\n", VV_RESPONSE_LINES); -+ "VV¥n", VV_RESPONSE_LINES); ++ "VV\n", VV_RESPONSE_LINES); if (ret) { return ret; } @@ -3342,7 +3342,7 @@ index 801d366..f4fa3dd 100644 ret = receive_command_response(urg, receive_buffer, RECEIVE_BUFFER_SIZE, - "VV\n", VV_RESPONSE_LINES); -+ "VV¥n", VV_RESPONSE_LINES); ++ "VV\n", VV_RESPONSE_LINES); if (ret) { return ret; } @@ -3351,7 +3351,7 @@ index 801d366..f4fa3dd 100644 ret = receive_command_response(urg, receive_buffer, RECEIVE_BUFFER_SIZE, - "VV\n", VV_RESPONSE_LINES); -+ "VV¥n", VV_RESPONSE_LINES); ++ "VV\n", VV_RESPONSE_LINES); if (ret) { return ret; } @@ -3360,7 +3360,7 @@ index 801d366..f4fa3dd 100644 ret = receive_command_response(urg, receive_buffer, RECEIVE_BUFFER_SIZE, - "VV\n", VV_RESPONSE_LINES); -+ "VV¥n", VV_RESPONSE_LINES); ++ "VV\n", VV_RESPONSE_LINES); if (ret) { return ret; } @@ -3369,7 +3369,7 @@ index 801d366..f4fa3dd 100644 ret = receive_command_response(urg, receive_buffer, RECEIVE_BUFFER_SIZE, - "II\n", II_RESPONSE_LINES); -+ "II¥n", II_RESPONSE_LINES); ++ "II\n", II_RESPONSE_LINES); if (ret) { return ret; } @@ -3378,7 +3378,7 @@ index 801d366..f4fa3dd 100644 ret = receive_command_response(urg, receive_buffer, RECEIVE_BUFFER_SIZE, - "II\n", II_RESPONSE_LINES); -+ "II¥n", II_RESPONSE_LINES); ++ "II\n", II_RESPONSE_LINES); if (ret) { return ret; } @@ -3390,11 +3390,11 @@ index 68a24c3..7d7158d 100644 /*! - \file - \brief VAʐM -+ ¥file -+ ¥brief シリアル通信 ++ \file ++ \brief シリアル通信 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_serial.c,v 0caa22c18f6b 2010/12/30 03:36:32 Satofumi $ */ @@ -3407,7 +3407,7 @@ index 68a24c3..7d7158d 100644 static int is_linefeed(const char ch) { - return ((ch == '\r') || (ch == '\n')) ? 1 : 0; -+ return ((ch == '¥r') || (ch == '¥n')) ? 1 : 0; ++ return ((ch == '\r') || (ch == '\n')) ? 1 : 0; } @@ -3425,13 +3425,13 @@ index 68a24c3..7d7158d 100644 serial_ungetc(serial, data[filled]); } - data[filled] = '\0'; -+ data[filled] = '¥0'; ++ data[filled] = '\0'; if ((filled == 0) && is_timeout) { return -1; } else { - //fprintf(stderr, "%s\n", data); -+ //fprintf(stderr, "%s¥n", data); ++ //fprintf(stderr, "%s\n", data); return filled; } } @@ -3443,11 +3443,11 @@ index ff8e75d..d928a6c 100644 /*! - \file - \brief VAʐM -+ ¥file -+ ¥brief シリアル通信 ++ \file ++ \brief シリアル通信 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -3468,7 +3468,7 @@ index ff8e75d..d928a6c 100644 flags = fcntl(serial->fd, F_GETFL, 0); - fcntl(serial->fd, F_SETFL, flags & ~O_NONBLOCK); -+ fcntl(serial->fd, F_SETFL, flags & ‾O_NONBLOCK); ++ fcntl(serial->fd, F_SETFL, flags & ~O_NONBLOCK); - /* VAʐM̏ */ + /* シリアル通信の初期化 */ @@ -3476,10 +3476,10 @@ index ff8e75d..d928a6c 100644 serial->sio.c_iflag = 0; serial->sio.c_oflag = 0; - serial->sio.c_cflag &= ~(CSIZE | PARENB | CSTOPB); -+ serial->sio.c_cflag &= ‾(CSIZE | PARENB | CSTOPB); ++ serial->sio.c_cflag &= ~(CSIZE | PARENB | CSTOPB); serial->sio.c_cflag |= CS8 | CREAD | CLOCAL; - serial->sio.c_lflag &= ~(ICANON | ECHO | ISIG | IEXTEN); -+ serial->sio.c_lflag &= ‾(ICANON | ECHO | ISIG | IEXTEN); ++ serial->sio.c_lflag &= ~(ICANON | ECHO | ISIG | IEXTEN); serial->sio.c_cc[VMIN] = 0; serial->sio.c_cc[VTIME] = 0; @@ -3576,11 +3576,11 @@ index 42c534a..73fe946 100644 /*! - \file - \brief VAp̕⏕֐ -+ ¥file -+ ¥brief シリアル用の補助関数 ++ \file ++ \brief シリアル用の補助関数 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -3592,11 +3592,11 @@ index 509c069..2e48531 100644 /*! - \file - \brief VAp̕⏕֐ -+ ¥file -+ ¥brief シリアル用の補助関数 ++ \file ++ \brief シリアル用の補助関数 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_serial_utils_linux.c,v 0caa22c18f6b 2010/12/30 03:36:32 Satofumi $ */ @@ -3619,18 +3619,18 @@ index fa68e9b..fe10a20 100644 /*! - \file - \brief VAp̕⏕֐ -+ ¥file -+ ¥brief シリアル用の補助関数 ++ \file ++ \brief シリアル用の補助関数 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_serial_utils_windows.c,v faa71b0113fd 2011/01/17 12:00:22 Satofumi $ - \todo ϐ '_' ؂̌`ɕύX - \todo C90 œ삷悤ɒBA"//" Rg͎g -+ ¥todo 変数名を '_' 区切りの形式に変更する -+ ¥todo C90 相当で動作するように調整する。ただし、"//" コメントは使う ++ \todo 変数名を '_' 区切りの形式に変更する ++ \todo C90 相当で動作するように調整する。ただし、"//" コメントは使う */ #include "urg_c/urg_serial_utils.h" @@ -3662,11 +3662,11 @@ index fa68e9b..fe10a20 100644 } - // (COMx) ̍Ō̊ʂ̈ʒu '\0' -+ // (COMx) の最後の括弧の位置に '¥0' を代入する ++ // (COMx) の最後の括弧の位置に '\0' を代入する p = strrchr(buffer, ')'); if (p) { - *p = '\0'; -+ *p = '¥0'; ++ *p = '\0'; } - // COM Ɣԍ܂ł̕𔲂o @@ -3700,11 +3700,11 @@ index c10a279..6a42b7c 100644 /*! - \file - \brief VAʐM -+ ¥file -+ ¥brief シリアル通信 ++ \file ++ \brief シリアル通信 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id$ */ @@ -3722,7 +3722,7 @@ index c10a279..6a42b7c 100644 - /* COM |[gJ */ - _snprintf(adjusted_device, NameLength, "\\\\.\\%s", device); + /* COM ポートを開く */ -+ _snprintf(adjusted_device, NameLength, "¥¥¥¥.¥¥%s", device); ++ _snprintf(adjusted_device, NameLength, "\\\\.\\%s", device); serial->hCom = CreateFileA(adjusted_device, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); @@ -3730,7 +3730,7 @@ index c10a279..6a42b7c 100644 if (serial->hCom == INVALID_HANDLE_VALUE) { // !!! store error_message buffer - //printf("open failed: %s\n", device); -+ //printf("open failed: %s¥n", device); ++ //printf("open failed: %s\n", device); return -1; } @@ -3795,11 +3795,11 @@ index 3abc934..24b592a 100644 /*! - \file - \brief TCP/IP read/write functions -+ ¥file -+ ¥brief TCP/IP read/write functions ++ \file ++ \brief TCP/IP read/write functions - \author Katsumi Kimoto -+ ¥author Katsumi Kimoto ++ \author Katsumi Kimoto $Id: urg_tcpclient.c,v d746d6f9127d 2011/05/08 23:10:44 satofumi $ */ @@ -3869,7 +3869,7 @@ index 3abc934..24b592a 100644 break; // error } - if (ch == '\n' || ch == '\r') { -+ if (ch == '¥n' || ch == '¥r') { ++ if (ch == '\n' || ch == '\r') { break; // success } userbuf[i] = ch; @@ -3878,10 +3878,10 @@ index 3abc934..24b592a 100644 --i; cli->pushed_back = userbuf[buf_size - 1] & 0xff; - userbuf[buf_size - 1] = '\0'; -+ userbuf[buf_size - 1] = '¥0'; ++ userbuf[buf_size - 1] = '\0'; } - userbuf[i] = '\0'; -+ userbuf[i] = '¥0'; ++ userbuf[i] = '\0'; if (i == 0 && n <= 0) { // error return -1; @@ -3892,10 +3892,10 @@ index 2a272d1..ea9108c 100644 @@ -1,7 +1,7 @@ /*! - \brief URG ZTp̕⏕֐ -+ ¥brief URG センサ用の補助関数 ++ \brief URG センサ用の補助関数 - \author Satofumi KAMIMURA -+ ¥author Satofumi KAMIMURA ++ \author Satofumi KAMIMURA $Id: urg_utils.c,v da778fd816c2 2011/01/05 20:02:06 Satofumi $ */ diff --git a/pkg_additional_info.yaml b/pkg_additional_info.yaml index 78584686..b38faa12 100644 --- a/pkg_additional_info.yaml +++ b/pkg_additional_info.yaml @@ -157,38 +157,6 @@ pybind11_json_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR" pybind11_vendor: additional_cmake_args: "-DAMENT_VENDOR_POLICY=NEVER_VENDOR" -roboplan: - generate_dummy_package_with_run_deps: - dep_name: roboplan-python - max_pin: 'x.x' -roboplan-oink: - generate_dummy_package_with_run_deps: - dep_name: roboplan-oink-python - max_pin: 'x.x' -roboplan_cartesian_planning: - generate_dummy_package_with_run_deps: - dep_name: roboplan-cartesian-planning-python - max_pin: 'x.x' -roboplan_example_models: - generate_dummy_package_with_run_deps: - dep_name: roboplan-example-models-python - max_pin: 'x.x' -roboplan_examples: - generate_dummy_package_with_run_deps: - dep_name: roboplan-examples-python - max_pin: 'x.x' -roboplan_rrt: - generate_dummy_package_with_run_deps: - dep_name: roboplan-rrt-python - max_pin: 'x.x' -roboplan_simple_ik: - generate_dummy_package_with_run_deps: - dep_name: roboplan-simple-ik-python - max_pin: 'x.x' -roboplan_toppra: - generate_dummy_package_with_run_deps: - dep_name: roboplan-toppra-python - max_pin: 'x.x' robot_state_publisher: additional_cmake_args: "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON" rosx_introspection: diff --git a/robostack.yaml b/robostack.yaml index 6ed16d16..f7fee979 100644 --- a/robostack.yaml +++ b/robostack.yaml @@ -414,6 +414,8 @@ libnlopt-dev: robostack: [nlopt] libnlopt0: robostack: [nlopt] +liboctomap-dev: + robostack: [octomap] libogg: robostack: [libogg] libogre: