ROSでHelloWorld
$ vi HelloWorld.py
#!/usr/bin/env python import rospy rospy.init_node('helloworld_node') #set node name rospy.loginfo('Hello world') #set output Charactor String rospy.spin() #loop
roscoreが立上がっていなければ立上げてください。
$ python HelloWorld.py [INFO] [1555844299.372599]: Hello world
【Ubuntu16.04】ROS環境構築
以下にROSの環境構築のコマンドを記述します。
$ sudo apt install git $ git clone https://github.com/ryuichiueda/ros_setup_scripts_Ubuntu16.04_desktop $ cd ros_setup_scripts_Ubuntu16.04_desktop/ $ ./step0.bash $ ./step1.bash $ source ~/.bashrc $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' $ source ~/.bashrc $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 $ sudo apt-get update $ sudo apt-get install ros-kinetic-desktop-full $ sudo rosdep init $ rosdep update $ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc $ source ~/.bashrc
最後、rebootしないと以下のコマンドを正常に実行できません。
$ reboot
$ roscore と打って以下のように表示されたら環境構築は終了です。
$ roscore ... logging to /home/atsuya/.ros/log/54354e3e-641d-11e9-98f5-08002716ba6e/roslaunch-atsuya-VirtualBox-1915.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://localhost:41625/ ros_comm version 1.12.14 SUMMARY ======== PARAMETERS * /rosdistro: kinetic * /rosversion: 1.12.14 NODES auto-starting new master process[master]: started with pid [1926] ROS_MASTER_URI=http://localhost:11311/ setting /run_id to 54354e3e-641d-11e9-98f5-08002716ba6e process[rosout-1]: started with pid [1939] started core service [/rosout]
「Mercari CES 2019 報告会」自分のツイートまとめ
mercariR4Dの方がまとめたツイートはこちら
connpass.com
いつもの建物 pic.twitter.com/lxZph810pI
— あっつー (@Atsuya09) January 21, 2019
会場につきましたー!#mercariCES pic.twitter.com/uZWk0BoMnP
— あっつー (@Atsuya09) 2019年1月21日
mercariのお水 pic.twitter.com/G8Z7QRxZYn
— あっつー (@Atsuya09) 2019年1月21日
曲がるディスプレイはLGに限らず多数#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
2018年とひかくして、VRは縮小、ARやスマートグラスが大きく伸長#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
自動運転車のベンツ#mercariCES pic.twitter.com/Yhin9pXQdG
— あっつー (@Atsuya09) 2019年1月21日
ホテル競争は既に始まっている#mercariCES pic.twitter.com/Bjhy9MzuvJ
— あっつー (@Atsuya09) 2019年1月21日
ソフトウェア視点から考えるスマートグラスの普及方法#mercariCES pic.twitter.com/JClWgLlcZE
— あっつー (@Atsuya09) 2019年1月21日
スマートグラスに最適化したメルカリアプリの話#mercariCES pic.twitter.com/A1SEbahA5x
— あっつー (@Atsuya09) 2019年1月21日
さらっと言ってたけど、mercariの電波暗室が気になる#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
オフラインでできるってことは、グラスだけで画像認識しているのか#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
一般的なジェスチャと触覚のフィードバックがあるジェスチャが馴染みやすい#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
指をさした場合のみ、(指をさした最も近い画像)をトリミングして商品検索
— あっつー (@Atsuya09) 2019年1月21日
すべて、端末内で処理。次回は一部クラウドを使用予定#mercariCES
googleレンズはタップしたもののみ、詳細な内容を表示(AR)#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
プライバシー問題は非常に重要#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
アレクサを使用したスマートデバイスが目立つ#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
Vuzix Bladeは屋外利用を想定されたもの。
— あっつー (@Atsuya09) 2019年1月21日
OSがAndroid。
難しいポイントは、カメラから得たデータを端末内で処理しハンドジェスチャや物体を認識すること。VuzixBladeはカメラが少し上を向く
端末単体で1h連続稼働。基本的にディスプレイに表示しないので長持ち。#mercariCES
3つめのセッションが始まった#mercariCES pic.twitter.com/l4Oe9DSGyR
— あっつー (@Atsuya09) 2019年1月21日
デモをする前は、耳の中に小さなマイクを取り込む
— あっつー (@Atsuya09) 2019年1月21日
個人の特性を取り込み、すぐに反映させる
360RealityAudio#mercariCES
インパルス応答
— あっつー (@Atsuya09) 2019年1月21日
伝達関数
(制御で勉強したやつや、、)#mercariCES pic.twitter.com/3FGJzabNWl
(Sennheiser) AMBEO AR One#mercariCES pic.twitter.com/7zwdtKVlyu
— あっつー (@Atsuya09) 2019年1月21日
AutodeskもメッシュをVRを使用したデモ#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
ペット用のトイレデバイス
— あっつー (@Atsuya09) 2019年1月21日
猫が運動するためのデバイス#mercariCES pic.twitter.com/0gxeohTpl8
こっちはロボットがペット#mercariCES pic.twitter.com/oxzk6LTFuZ
— あっつー (@Atsuya09) 2019年1月21日
残像効果を利用した空中ディスプレイ
— あっつー (@Atsuya09) 2019年1月21日
複数使用したものは珍しい#mercariCES pic.twitter.com/Wx0BVWlJcr
4つめのセッションが始まった!#mercariCES pic.twitter.com/Gt8wLOuJuA
— あっつー (@Atsuya09) 2019年1月21日
Pro EyeとCosmos#mercariCES pic.twitter.com/ZKJRWEXRHy
— あっつー (@Atsuya09) 2019年1月21日
Focals by Not th
— あっつー (@Atsuya09) 2019年1月21日
どう見ても普通の眼鏡
コントローラの指輪のサイズが外国の方向け#mercariCES
#mercariCES トレンド入り pic.twitter.com/nXFBKu4RVz
— あっつー (@Atsuya09) 2019年1月21日
antilatency
— あっつー (@Atsuya09) 2019年1月21日
(物理的に)軽い上にフルトラッキング可能#mercariCES pic.twitter.com/zNQQF7Juek
PlatformaVR
— あっつー (@Atsuya09) 2019年1月21日
2017年のDCEXPOでも似たようなのがあった気がする#mercariCES
The VOID
— あっつー (@Atsuya09) 2019年1月21日
実際に壁のボタンが押せたり#mercariCES pic.twitter.com/U0XdWgCHhg
日本はアバターの文化が強く、海外の体験型とは志向性が違う#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
境界判定はYOLOのように矩形検索#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
画像検索APIがmercariにある。
— あっつー (@Atsuya09) 2019年1月21日
レスポンス的には2,3秒。
切り取った画像より小さくなるためレスポンスは早く帰ってくる#mercariCES
誤字・・・
— あっつー (@Atsuya09) 2019年1月21日
位置レフじゃなくて、一眼レフです
HTC以外のHMDは、Oclusの展示無し、PSVRは展示あり#mercariCES
— あっつー (@Atsuya09) 2019年1月21日
#CES2019 ツイートまとめ
CESはコンシューマテクノロジーのビジネスを懸命に取り込む世界中の人々が集まる場所です。この50年間、次世代のイノベーションが市場にどんどん導入されるこの国際舞台では、CESはイノベーターと技術革新の現場として、重要な役割を果たしてきました。
最大の実際に体験できるに体験できるイベントとしてはCESでは、業界業界のすべてを網羅しています。Consumer Technology Association(CTA)™が所有、企画するこのイベントは、世界中のビジネスリーダーや先駆的な思考の持ち主などが一堂に会します。CES 2019には、世界中から55,000人以上の参加が見込まれています。提供されるサービスについての詳細をご覧になり、CESでの体験を最大限に活かしてください。
2019年の1月8日~11日の間にラスベガスで行われている見本市「CES2019」で非常に興味深いものがたくさん展示されているため、興味を持ったツイートをまとめていきたいと思います。
#R4DCES スロットマシーンとかあって、ラスベガス感 pic.twitter.com/iVPuJ9ZHnE
— tarotaro@ViveMeetUp参加 (@nakatarotaro) 2019年1月8日
#R4DCES hypervsnの空中ディスプレイ解像度が高いので、すごい綺麗 pic.twitter.com/NxgRl4DTPU
— tarotaro@ViveMeetUp参加 (@nakatarotaro) January 8, 2019
ROYOLEの曲げディスプレイおもしろー #R4DCES #CES2019 pic.twitter.com/Nz1YIBfw1X
— tarotaro@ViveMeetUp参加 (@nakatarotaro) January 8, 2019
LGの局面ディスプレイ、圧倒的に感動… なんだこれは…#いけあやCES #CES2019 pic.twitter.com/uQXmeeDBMk
— 池澤あやか / いけあや (@ikeay) 2019年1月8日
超話題になってるRoyoleのFlexPai触ってきた!伸ばすと普通に使えるタブレット、曲げるとUIもシームレスにスマホに変形!#いけあやCES #CES2019 pic.twitter.com/zikfyNOLT7
— 池澤あやか / いけあや (@ikeay) 2019年1月8日
これが噂のLGの巻き取れるディスプレイか… 薄い… こんなTV家にあったらむちゃむちゃかっこいいやん…#いけあやCES #CES2019 pic.twitter.com/4azPxcQ3Uq
— 池澤あやか / いけあや (@ikeay) 2019年1月8日
LOVOT〜〜〜〜っっっっ💓#いけあやCES #CES2019 pic.twitter.com/9VnLengzNT
— 池澤あやか / いけあや (@ikeay) 2019年1月8日
The Forum Shops at Caesars Palace にある大型プロジェクションマッピング広告にはGoogleの Hey Google も乗っかっていました、これ自体はCESに合わせたものではなく前からありますが、表現がかっこよくて好きです:D #R4DCES #CES2019 pic.twitter.com/BOOdJ5stJy
— いっこう / ikkou CES 1/6-11 (@ikkou) 2019年1月8日
↑これは実際にはプロジェクションマッピングではなく、LEDが光っているそうです。↑
近年よく見かけるようになった空中ディスプレイもあります #R4DCES #CES2019 pic.twitter.com/vtTmkOl4Uu
— いっこう / ikkou CES 1/6-11 (@ikkou) 2019年1月7日
LVCC Central 16206 Canon USA Incブース
— いっこう / ikkou CES 1/6-11 (@ikkou) 2019年1月8日
24台のEOS Kiss X9を使ってバレットタイム撮影体験!ただのバレットタイム撮影ではなく、撮影するところは暗闇で、アテンドする方がLEDライトをぶん回してアーティスティックに仕上げてくれるもの #R4DCES #CES2019 pic.twitter.com/hkcETtolOR
別の視点の映像。細かい角度まで正確に反映されていることが分かります。#CES2019 #R4DCES https://t.co/yHAEA06Ki0 pic.twitter.com/k0hSn9Qr7p
— Nakaji Kohki (@nkjzm) 2019年1月8日
#OVIS は走るスーツケース #R4DCES #CES2019 pic.twitter.com/oLbz7GqLKd
— いっこう / ikkou CES 1/6-11 (@ikkou) 2019年1月7日
ドローン系の展示多いな〜
— Nakaji Kohki (@nkjzm) 2019年1月8日
これは同時制御のデモ #CES2019 #R4DCES pic.twitter.com/WTCFxnO1RA
同じところが空中ディスプレイの展示もやってた。動画だと乱れて見えるけど、実際は綺麗です。#CES2019 #R4DCES pic.twitter.com/oeOyfUbNSW
— Nakaji Kohki (@nkjzm) 2019年1月8日
]Window Cleaning Robot #CES2019 #R4DCES pic.twitter.com/KMLf2oe93y
— Nakaji Kohki (@nkjzm) 2019年1月8日
やばそうな奴並んでる #CES2019 #R4DCES pic.twitter.com/7vhxuOeh1o
— Nakaji Kohki (@nkjzm) 2019年1月8日
シートも自動で配置が変わる時代か。イオク様みたいに挟まれないように注意な#オルフェンズ#CES2019 pic.twitter.com/xGXKBdvvpK
— ロボ先輩@3rd Factory (@3rd_factory_ro) 2019年1月9日
【Unity・C#】DLLでコードの再利用
Visual Stduioで.NET frameworkを選択しプロジェクトを作成する
ファイル名:Class.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassLibrary1 { public class Class1 { public static string Message { get { return "Stand by Ready!"; } } } }
というプログラムを書いておく。
Unityで
Assets>Create>C# Script
を選択し、
ファイル名:NewBehaviourScript1.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using ClassLibrary1; public class NewBehaviourScript1 : MonoBehaviour { // Start is called before the first frame update void Start() { Debug.Log(Class1.Message); } // Update is called once per frame void Update() { } }
とする。
using ClassLibrary1;
でnameplaseを、
Debug.Log(Class1.Message);
でClass1クラスとMessageプロパティを指定。
AssetsにClass.csをドラッグ&ドロップして、Main CameraにNewBehaviourScript1.csをドラッグ&ドロップして再生するとConsole画面に出力される。
Unityに依存しないプログラムをUnity側から呼び出せていることが確認できる。
【C/C++第4回】LEDチカ・PWM
今日はタイトルの通り、LチカとPWM点灯とダイナミックをしたいと思います。
マイコンを使う際に、基板にはんだ付けされているピンヘッダ(以下ピン)を使用しているわけですがそれぞれがどういう役割を持っているのかを把握してから使用しなければなりません。
Nucleoの場合は親切なことに簡潔に書かれているものが用意されているので、最初はそれを見て判断していけば問題ないと思います。
ポートの設定方法
DigitalOut myled(指定したポート);
このように設定すると、指定したポートがデジタル出力ポートになります。
DigitalOut | デジタル出力 |
DigitalIn | デジタル入力 |
AnalogIn | アナログ入力 |
PwmOut | PWM出力 |
最初はこれらを使えるようになっていれば問題ないと思います。(他にもいろいろあります)
では実際にLチカからやってみましょう。
#include "mbed.h" DigitalOut myled(PB_4); int main() { while(1) { myled = 1; wait(0.1); // 100 ms myled = 0; wait(1.0); // 1 sec } }
これでPB_4がデジタル出力のポートになり、LEDが点滅するようになります。
wait関数の中は秒単位での設定になりますが、浮動小数点の入力もできるようになっています。
PWM点灯をします。
PWMはPulse Width Modulationの略で、周期とデューティ比の指定により抵抗や半導体にかける電圧を調整する方法です。
ただ、今回は特に周期などは指定していません。後日サーボモータを動かしたいと思うので、その時に改めて説明します。
#include "mbed.h" PwmOut led(PB_4); int main() { while(1) { for(float i = 0.0f; i < 1.0f; i += 0.1f) { led = i; wait(0.1); } } }
これで徐々にLEDの明るさが変化します。Digital OutがPwmOutになっているため、コンストラクタへの指定が違うことに注意してください。