только не каждый захочет чего то еще городить у себя дома, так что это удел энтузиастов, беспроводная передача всегда будет добавлять задержки в видеосигнал и в канал управления.
мобильное же железо развивается, и дальше будет лучше, опять же массовому игроку будет интереснее простое и сразу же работающее устройство, а не дрочево на графику)
я уже сказал выше, что этот окулус может себя позиционировать в пространстве и учитывать геометрию, плюс смешанная реальность, с которой не будешь тыкаться об углы. твой же комп не позволит свободно перемещаться по комнате — это главная тупость ВР, зачем он нужен, если ты сидишь на стуле?
Довольно крутой шаг, может быть раньше и можно было засунуть какой нибудь самсунг в пластиковый шлем, но там не было решения для нормального трекинга в реальном пространстве.
А так полностью автономный ВР шлем, который трекает положение без лишних устройств и так же может применять смешанную реальность — что может быть круче?
исторически сложившееся право на самозащиту в итоге даже при появлении строгих законов и полицейского государства, создало проблемы с массовы распространением оружия и значит возможностей для доморощенных психопатов, и не надо говорить что преступники и так найдут, как раз свободный оборот предоставляет наилегчайший способ(ограбление дома) получить это оружие, а уж возможность напечатать ствол без палева, даже с учетом большой стоимости, может дать солидные возможности…
а для чего именно h264 нужно, по другому данные с камеры не получить?
вот конфиг, который я использовал для работы с камерой на джетсоне, думаю тут надо подставить свою конфигурацию GSCAM_CONFIG, ну и поставить пакет ros-kinetic-gscam
<launch>
<!-- Command Line Arguments -->
<arg name="cam_name" default="usb_cam" /> <!-- The name of the camera (corrsponding to the camera info) -->
<arg name="frame_id" default="/$(arg cam_name)_link" /> <!-- The TF frame ID. -->
<arg name="sync_sink" default="true" /> <!-- Synchronize the app sink. Setting this to false may resolve problems with sub-par framerates. -->
<arg name="width" default="640" /> <!-- Image Width -->
<arg name="height" default="360" /> <!-- Image Height -->
<arg name="fps" default="10" /> <!-- Desired framerate. True framerate may not reach this if set too high. -->
<!-- Make arguments available to parameter server -->
<param name="$(arg cam_name)/image_width" type="int" value="$(arg width)" />
<param name="$(arg cam_name)/image_height" type="int" value="$(arg height)" />
<param name="$(arg cam_name)/target_fps" type="int" value="$(arg fps)" />
<!-- Define the GSCAM pipeline -->
<env name="GSCAM_CONFIG" value="nvcamerasrc ! video/x-raw(memory:NVMM),
width=(int)$(arg width), height=(int)$(arg height), format=(string)I420, framerate=(fraction)$(arg fps)/1 !
nvvidconv flip-method=0 ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR" />
<!-- Start the GSCAM node -->
<node pkg="gscam" type="gscam" name="$(arg cam_name)">
<param name="camera_name" value="$(arg cam_name)" />
<param name="frame_id" value="$(arg frame_id)" />
<param name="sync_sink" value="$(arg sync_sink)" />
<remap from="camera/image_raw" to="$(arg cam_name)/image_raw" />
<remap from="/set_camera_info" to="$(arg cam_name)/set_camera_info" />
</node>
<node name="republish" type="republish" pkg="image_transport" output="screen" args="in:=/usb_cam/image_raw" />
</launch>
вот например как установить ubuntu на плату Beaglebone Black для вашего робота, а уже в ubuntu легко настроить ROS, хотя конечно система может жрать ресуры
или другой пример: транслировать видео через rstp, а на клиенте принимать через ffmpeg
я не обратил внимание на то что стримится по сети, но тем не менее, мой способ работает, просто на клиент пробросьте стрим в /dev/video, в ROS просто так видоеопоток не запихнете
а если хотите транслировать сжатый поток, то машине откуда идет стрим, можно запустить модуль usb_cam, и сделать проброс через image_transport с image_raw в image_compresed, и на клиентской машине уже с легкостью примете поток через ROS.
Если же задача просто перебросить видеопоток, то рос я думаю вам не нужен
я конечно не проверял, но мне кажется с датчиками расстояния невозможно нормально построить карту, и тем более ориентироваться в пространстве, в видео примере контуры карты очень нестабильны, и при сдвиге робота, карта вокруг него исказиться, но он не сможет определить что был сдвиг
Как с помощью датчиков дистанции и бампера вы собираетесь строить карту?
И как собираетесь соотнести данные с камеры(найденные объекты), с уже построенной картой?
мобильное же железо развивается, и дальше будет лучше, опять же массовому игроку будет интереснее простое и сразу же работающее устройство, а не дрочево на графику)
А так полностью автономный ВР шлем, который трекает положение без лишних устройств и так же может применять смешанную реальность — что может быть круче?
вот конфиг, который я использовал для работы с камерой на джетсоне, думаю тут надо подставить свою конфигурацию GSCAM_CONFIG, ну и поставить пакет ros-kinetic-gscam
или другой пример: транслировать видео через rstp, а на клиенте принимать через ffmpeg
а если хотите транслировать сжатый поток, то машине откуда идет стрим, можно запустить модуль usb_cam, и сделать проброс через image_transport с image_raw в image_compresed, и на клиентской машине уже с легкостью примете поток через ROS.
Если же задача просто перебросить видеопоток, то рос я думаю вам не нужен
чтобы использовать в ROS
1) установить пакет usb-cam
2) Создать файл, например usb_cam.launch и положить его в папку вашего пакета
где video_device нужно указать адрес вашего видеутроства, например /dev/video0
И как собираетесь соотнести данные с камеры(найденные объекты), с уже построенной картой?